summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-08-20git clone: Add --recursive to automatically checkout (nested) submodulesLibravatar Johan Herland3-2/+31
Many projects using submodules expect all submodules to be checked out in order to build/work correctly. A common command sequence for developers on such projects is: git clone url/to/project cd project git submodule update --init (--recursive) This patch introduces the --recursive option to git-clone. The new option causes git-clone to recursively clone and checkout all submodules of the cloned project. Hence, the above command sequence can be reduced to: git clone --recursive url/to/project --recursive is ignored if no checkout is done by the git-clone. The patch also includes documentation and a selftest. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-20t7407: Use 'rev-parse --short' rather than bash's substring expansion notationLibravatar Johan Herland1-2/+4
The substring expansion notation is a bashism that we have not so far adopted. Use 'git rev-parse --short' instead, as this also handles the case where the unique abbreviation is longer than 7 characters. Also fix the typo; the object name for submodule #2 was copied from submodule #1's by mistake. Suggested-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18git submodule status: Add --recursive to recurse into nested submodulesLibravatar Johan Herland3-6/+51
In very large and hierarchically structured projects, one may encounter nested submodules. In these situations, it is valuable to not only show status for all the submodules in the current repo (which is what is currently done by 'git submodule status'), but also to show status for all submodules at all levels (i.e. recursing into nested submodules as well). This patch teaches the new --recursive option to the 'git submodule status' command. The patch also includes documentation and selftests. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18git submodule update: Introduce --recursive to update nested submodulesLibravatar Johan Herland3-3/+36
In very large and hierarchically structured projects, one may encounter nested submodules. In these situations, it is valuable to not only update the submodules in the current repo (which is what is currently done by 'git submodule update'), but also to operate on all submodules at all levels (i.e. recursing into nested submodules as well). This patch teaches the new --recursive option to the 'git submodule update' command. The patch also includes documentation and selftests. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18git submodule foreach: Add --recursive to recurse into nested submodulesLibravatar Johan Herland3-4/+124
In very large and hierarchically structured projects, one may encounter nested submodules. In these situations, it is valuable to not only operate on all the submodules in the current repo (which is what is currently done by 'git submodule foreach'), but also to operate on all submodules at all levels (i.e. recursing into nested submodules as well). This patch teaches the new --recursive option to the 'git submodule foreach' command. The patch also includes documentation and selftests. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18git submodule foreach: test access to submodule name as '$name'Libravatar Johan Herland1-3/+3
Add verification of the behaviour of '$name' to the git submodule foreach selftest. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18Add selftest for 'git submodule foreach'Libravatar Johan Herland1-0/+79
The selftest verifies that: - only checked out submodules are visited by 'git submodule foreach' - the $path, and $sha1 variables are set correctly for each submodule Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18git submodule: Cleanup usage string and add option parsing to cmd_foreach()Libravatar Johan Herland1-3/+25
Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-18git submodule foreach: Provide access to submodule name, as '$name'Libravatar Johan Herland2-1/+3
The argument to 'git submodule foreach' already has access to the variables '$path' (the path to the submodule, relative to the superproject) and '$sha1' (the submodule commit recorded by the superproject). This patch adds another variable -- '$name' -- which contains the name of the submodule, as recorded in the superproject's .gitmodules file. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-16Merge branch 'lt/block-sha1'Libravatar Junio C Hamano3-0/+309
* lt/block-sha1: block-sha1/sha1.c: silence compiler complaints by casting void * to char * block-sha1: more good unaligned memory access candidates block-sha1: support for architectures with memory alignment restrictions block-sha1: split the different "hacks" to be individually selected block-sha1: move code around block-sha1: improve code on large-register-set machines block-sha1: improved SHA1 hashing block-sha1: perform register rotation using cpp block-sha1: get rid of redundant 'lenW' context block-sha1: Use '(B&C)+(D&(B^C))' instead of '(B&C)|(D&(B|C))' in round 3 block-sha1: macroize the rounds a bit further block-sha1: re-use the temporary array as we calculate the SHA1 block-sha1: make the 'ntohl()' part of the first SHA1 loop block-sha1: minor fixups block-sha1: try to use rol/ror appropriately block-sha1: undo ctx->size change Add new optimized C 'block-sha1' routines
2009-08-16Merge branch 'bc/maint-am-email'Libravatar Junio C Hamano0-0/+0
* bc/maint-am-email: git-am: print fair error message when format detection fails am: allow individual e-mail files as input
2009-08-16Merge branch 'js/maint-cover-letter-non-ascii'Libravatar Junio C Hamano4-12/+17
* js/maint-cover-letter-non-ascii: Correctly mark cover letters' encodings if they are not pure ASCII Expose the has_non_ascii() function
2009-08-16Merge branch 'jc/maint-clean-nested-dir-safety'Libravatar Junio C Hamano6-5/+63
* jc/maint-clean-nested-dir-safety: clean: require double -f options to nuke nested git repository and work tree
2009-08-16Merge branch 'jk/maint-merge-msg-fix'Libravatar Junio C Hamano4-11/+75
* jk/maint-merge-msg-fix: merge: indicate remote tracking branches in merge message merge: fix incorrect merge message for ambiguous tag/branch add tests for merge message headings
2009-08-16Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano1-7/+24
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: Parse arbitrary commit-ish in SHA1 field gitk: Fix direction of symmetric difference in optimized mode gitk: New option to hide remote refs gitk: Do not hard-code "encoding" in attribute lookup functions
2009-08-14git-cvsimport: add support for cvs pserver password scrambling.Libravatar Dirk Hoerner1-1/+38
Instead of a cleartext password, the CVS pserver expects a scrambled one in the authentication request. With this patch it is possible to import CVS repositories only accessible via pserver and user/password. Signed-off-by: Dirk Hoerner <dirker@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-14gitweb: Optimize git-favicon.pngLibravatar Benjamin Kramer2-0/+0
Reduce size of git-favicon.png using a combination of optipng and pngout. From 164 bytes to 115 bytes (30% reduction). Also reduce git-logo.png's size by one byte using advcomp. Signed-off-by: Benjamin Kramer <benny.kra@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-14block-sha1/sha1.c: silence compiler complaints by casting void * to char *Libravatar Brandon Casey1-2/+2
Some compilers produce errors when arithmetic is attempted on pointers to void. We want computations done on byte addresses, so cast them to char * to work them around. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-14Merge branch 'jn/gitweb-blame' (early part)Libravatar Junio C Hamano2-26/+50
* 'jn/gitweb-blame' (early part): gitweb: Use light/dark for class names also in 'blame' view gitweb: Add author initials in 'blame' view, a la "git gui blame" gitweb: Mark commits with no "previous" in 'blame' view gitweb: Use "previous" header of git-blame -p in 'blame' view gitweb: Mark boundary commits in 'blame' view gitweb: Make .error style generic
2009-08-13block-sha1: more good unaligned memory access candidatesLibravatar Nicolas Pitre1-1/+4
In addition to X86, PowerPC and S390 are capable of unaligned memory accesses. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-13gitk: Parse arbitrary commit-ish in SHA1 fieldLibravatar Thomas Rast1-1/+6
We only accepted either SHA1s or heads/tags that have been read. This meant the user could not, e.g., enter HEAD to go back to the current commit. This adds code to call out to git rev-parse --verify if all other methods of interpreting the string the user entered fail. (git-rev-parse alone is not enough as we really want a single revision.) The error paths change slighly, because we now know from the rev-parse invocation whether the expression was valid at all. The previous "unknown" path is now only triggered if the revision does exist, but is not in the current view display. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: Fix direction of symmetric difference in optimized modeLibravatar Thomas Rast1-1/+1
ee66e08 (gitk: Make updates go faster, 2008-05-09) implemented an optimized mode where gitk parses the arguments with rev-parse, and manually reads history in chunks. As mentioned in the commit message, symmetric differences are a problem there: One wrinkle is that we have to turn symmetric diff arguments (of the form a...b) back into symmetric diff form so that --left-right still works, as git rev parse turns a...b into a b ^merge_base(a,b). However, git-rev-parse returns a...b in the swapped order b a ^merge_base(a,b) This has been the case since at least 1f8115b (the state of master at the time of the abovementioned ee66e08; Merge branch 'maint', 2008-05-08). So gitk flipped the sides of symmetric differences whenever it was in optimized mode. Fix this by swapping the sides of the reconstruction code. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: New option to hide remote refsLibravatar Thomas Rast1-3/+15
In repositories with lots of remotes, looking at the history in gitk can be borderline insane with all the red labels for remote refs. Introduce a new option in the preferences that makes gitk ignore remote refs entirely, so they don't take up space in the display. Wished-for-by: Thell Fowler <tbfowler4@gmail.com> Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-13gitk: Do not hard-code "encoding" in attribute lookup functionsLibravatar Johannes Sixt1-2/+2
Commit 39ee47e (Clean up file encoding code and add enable/disable option, 2008-10-15) rewrote the attribute lookup functions gitattr and cache_gitattr, but in the process hard-coded the attribute name "encoding" instead of using the functions' parameters. This fixes it. This is not a serious regression because currently all callers look only for "encoding". Further note that this fix assumes that future callers will not pass an attribute name that contains regex special characters. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-08-12svn: (cleanup) use predefined constant for rev_map_fmtLibravatar Eric Wong1-1/+1
This makes life easier in case we ever need to change the internal format of the rev_maps. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2009-08-12svn: allow branches outside of refs/remotesLibravatar Adam Brewster6-54/+96
It may be convenient for some users to store svn remote tracking branches outside of the refs/remotes/ heirarchy. To accomplish this feat, this patch includes the entire path to the ref in $r->{'refname'} in &read_all_remotes and tries to change references to this entry so the new value makes sense. [ew: fixed backwards compatibility, long lines] Signed-off-by: Adam Brewster <adambrewster@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2009-08-12svn: initial "master" points to trunk if possibleLibravatar Eric Wong3-1/+42
Since "trunk" is a convention for the main development branch in the SVN world, try to make that the master branch upon initial checkout if it exists. This is probably less surprising based on user requests. t9135 was the only test which relied on the previous behavior and thus needed to be modified. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2009-08-12Merge branch 'maint'Libravatar Junio C Hamano14-18/+117
* maint: push: point to 'git pull' and 'git push --force' in case of non-fast forward Documentation: add: <filepattern>... is optional Change mentions of "git programs" to "git commands" Documentation: merge: one <remote> is required help.c: give correct structure's size to memset()
2009-08-12Merge branch 'maint-1.6.3' into maintLibravatar Junio C Hamano9-12/+12
* maint-1.6.3: Change mentions of "git programs" to "git commands" Documentation: merge: one <remote> is required help.c: give correct structure's size to memset()
2009-08-12push: point to 'git pull' and 'git push --force' in case of non-fast forwardLibravatar Matthieu Moy4-5/+103
'git push' failing because of non-fast forward is a very common situation, and a beginner does not necessarily understand "fast forward" immediately. Add a new section to the git-push documentation and refer them to it. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12Documentation: add: <filepattern>... is optionalLibravatar Paul Bolle1-1/+1
<filepattern>... is optional (e.g. when the --all or --update options are used) so use square brackets in the synopsis. Signed-off-by: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12Change mentions of "git programs" to "git commands"Libravatar Ori Avtalion8-10/+10
Most of the docs and printouts refer to "commands" when discussing what the end users call via the "git" top-level program. We should refer them as "git programs" when we discuss the fact that the commands are implemented as separate programs, but in other contexts, it is better to use the term "git commands" consistently. Signed-off-by: Ori Avtalion <ori@avtalion.name> Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12Documentation: merge: one <remote> is requiredLibravatar Paul Bolle1-1/+1
merge only requires one <remote>, so "<remote>..." should be used in the synopsis (and not "<remote> <remote>..."). Signed-off-by: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12help.c: give correct structure's size to memset()Libravatar Johan Herland1-1/+1
These two structures are of the same type, but we'd better be consistent. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12allow pull --rebase on branch yet to be bornLibravatar Jeff King2-5/+24
When doing a "pull --rebase", we check to make sure that the index and working tree are clean. The index-clean check compares the index against HEAD. The test erroneously reports dirtiness if we don't have a HEAD yet. In such an "unborn branch" case, by definition, a non-empty index won't be based on whatever we are pulling down from the remote, and will lose the local change. Just check if $GIT_DIR/index exists and error out. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12block-sha1: support for architectures with memory alignment restrictionsLibravatar Nicolas Pitre1-2/+30
This is needed on architectures with poor or non-existent unaligned memory support and/or no fast byte swap instruction (such as ARM) by using byte accesses to memory and shifting the result together. This also makes the code portable, therefore the byte access methods are the defaults. Any architecture that properly supports unaligned word accesses in hardware simply has to enable the alternative methods. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12block-sha1: split the different "hacks" to be individually selectedLibravatar Nicolas Pitre1-5/+18
This is to make it easier for them to be selected individually depending on the architecture instead of the other way around i.e. having each architecture select a list of hacks up front. That makes for clearer documentation as well. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-12block-sha1: move code aroundLibravatar Nicolas Pitre1-69/+60
Move the code around so specific architecture hacks are defined first. Also make one line comments actually one line. No code change. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-10Merge branch 'maint'Libravatar Junio C Hamano3-5/+5
* maint: Fix typos in git-remote.txt and git-symbolic-ref.txt git-instaweb: fix mod_perl detection for apache2
2009-08-10Merge branch 'maint-1.6.3' into maintLibravatar Junio C Hamano2-4/+4
* maint-1.6.3: Fix typos in git-remote.txt and git-symbolic-ref.txt
2009-08-10Merge branch 'jk/push-quiet'Libravatar Junio C Hamano5-1/+26
* jk/push-quiet: transport: don't show push status if --quiet is given transport: pass "quiet" flag to pack-objects push: add --quiet flag
2009-08-10Merge branch 'jc/maint-merge-recursive-fix'Libravatar Junio C Hamano2-3/+80
* jc/maint-merge-recursive-fix: merge-recursive: don't segfault while handling rename clashes
2009-08-10Merge branch 'zf/maint-gitweb-acname'Libravatar Junio C Hamano1-3/+2
* zf/maint-gitweb-acname: gitweb: parse_commit_text encoding fix
2009-08-10Merge branch 'ns/am-raw-email'Libravatar Junio C Hamano2-1/+34
* ns/am-raw-email: git-am: print fair error message when format detection fails am: allow individual e-mail files as input
2009-08-10Merge branch 'np/maint-limit-delta-cache'Libravatar Junio C Hamano2-4/+12
* np/maint-limit-delta-cache: don't let the delta cache grow unbounded in 'git repack'
2009-08-10Merge branch 'jp/symlink-dirs'Libravatar Junio C Hamano4-1/+114
* jp/symlink-dirs: t6035-merge-dir-to-symlink depends on SYMLINKS prerequisite git-checkout: be careful about untracked symlinks lstat_cache: guard against full match of length of 'name' parameter Demonstrate bugs when a directory is replaced with a symlink
2009-08-10Merge branch 'mk/grep-max-depth'Libravatar Junio C Hamano5-11/+103
* mk/grep-max-depth: grep: Add --max-depth option.
2009-08-10Merge branch 'js/run-command-updates'Libravatar Junio C Hamano11-125/+106
* js/run-command-updates: api-run-command.txt: describe error behavior of run_command functions run-command.c: squelch a "use before assignment" warning receive-pack: remove unnecessary run_status report run_command: report failure to execute the program, but optionally don't run_command: encode deadly signal number in the return value run_command: report system call errors instead of returning error codes run_command: return exit code as positive value MinGW: simplify waitpid() emulation macros
2009-08-10Fix typos in git-remote.txt and git-symbolic-ref.txtLibravatar Štěpán Němec2-4/+4
Signed-off-by: Štěpán Němec <stepnem@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-10block-sha1: improve code on large-register-set machinesLibravatar Linus Torvalds1-1/+24
For x86 performance (especially in 32-bit mode) I added that hack to write the SHA1 internal temporary hash using a volatile pointer, in order to get gcc to not try to cache the array contents. Because gcc will do all the wrong things, and then spill things in insane random ways. But on architectures like PPC, where you have 32 registers, it's actually perfectly reasonable to put the whole temporary array[] into the register set, and gcc can do so. So make the 'volatile unsigned int *' cast be dependent on a SMALL_REGISTER_SET preprocessor symbol, and enable it (currently) on just x86 and x86-64. With that, the routine is fairly reasonable even when compared to the hand-scheduled PPC version. Ben Herrenschmidt reports on a G5: * Paulus asm version: about 3.67s * Yours with no change: about 5.74s * Yours without "volatile": about 3.78s so with this the C version is within about 3% of the asm one. And add a lot of commentary on what the heck is going on. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>