summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* sscanf/strtoul: parse integers robustlyJim Meyering2007-04-114-18/+22
| | | | | | | | | | | | | * builtin-grep.c (strtoul_ui): Move function definition from here, to... * git-compat-util.h (strtoul_ui): ...here, with an added "base" parameter. * builtin-grep.c (cmd_grep): Update use of strtoul_ui to include base, "10". * builtin-update-index.c (read_index_info): Diagnose an invalid mode integer that is out of range or merely larger than INT_MAX. (cmd_update_index): Use strtoul_ui, not sscanf. * convert-objects.c (write_subdirectory): Likewise. Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Add testcase for format-patch --subject-prefix (take 3)Robin H. Johnson2007-04-112-0/+165
| | | | | | | Add testcase for format-patch --subject-prefix support. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Add custom subject prefix support to format-patch (take 3)Robin H. Johnson2007-04-114-11/+31
| | | | | | | | | | | Add a new option to git-format-patch, entitled --subject-prefix that allows control of the subject prefix '[PATCH]'. Using this option, the text 'PATCH' is replaced with whatever input is provided to the option. This allows easily generating patches like '[PATCH 2.6.21-rc3]' or properly numbered series like '[-mm3 PATCH N/M]'. This patch provides the implementation and documentation. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'maint'Junio C Hamano2007-04-116-20/+44
|\ | | | | | | | | | | | | | | * maint: GIT 1.5.1.1 cvsserver: Fix handling of diappeared files on update fsck: do not complain on detached HEAD. (encode_85, decode_85): Mark source buffer pointer as "const".
| * GIT 1.5.1.1v1.5.1.1Junio C Hamano2007-04-112-8/+23
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * cvsserver: Fix handling of diappeared files on updateFrank Lichtenheld2007-04-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Only send a modified response if the client sent a "Modified" entry. This fixes the case where the file was locally deleted on the client without being removed from CVS. In this case the client will only have sent the Entry for the file but nothing else. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Acked-by: Martin Langhoff <martin@catalyst.net.nz> Acked-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * fsck: do not complain on detached HEAD.Junio C Hamano2007-04-111-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | Detached HEAD is just a normal state of a repository. Do not say anything about it. Do not give worrying "error:" messages when we let the user know that the HEAD points at nothing (i.e. yet to be born branch), nor we do not have any default refs to start following the objects chain. Reword them as "notice:". Signed-off-by: Junio C Hamano <junkio@cox.net>
| * (encode_85, decode_85): Mark source buffer pointer as "const".Jim Meyering2007-04-112-4/+4
| | | | | | | | | | Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | gitweb: Allow configuring the default projects order and add order 'none'Frank Lichtenheld2007-04-101-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce new configuration variable $default_projects_order that can be used to specify the default order of projects on the index page if no 'o' parameter is given. Allow a new value 'none' for order that will cause the projects to be in the order we learned about them. In case of reading the list of projects from a file, this should be the order as they are listed in the file. In case of reading the list of projects from a directory this will probably give random results depending on the filesystem in use. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Acked-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | gitweb: Allow forks with project list fileFrank Lichtenheld2007-04-101-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | Make it possible to use the forks feature even when reading the list of projects from a file, by creating a list of known prefixes as we go. Forks have to be listed after the main project in order to be recognised as such. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Acked-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'maint'Junio C Hamano2007-04-102-3/+24
|\ \ | |/ | | | | | | | | * maint: Documentation: show-ref: document --exclude-existing cvsexportcommit -p : fix the usage of git-apply -C.
| * Documentation: show-ref: document --exclude-existingJulian Phillips2007-04-091-0/+16
| | | | | | | | | | | | | | | | Use the comment in the code to document the --exclude-existing function to git-show-ref. Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * cvsexportcommit -p : fix the usage of git-apply -C.Tomash Brechko2007-04-091-3/+8
| | | | | | | | | | | | | | | | | | Unlike 'patch --fuzz=NUM', which specifies the number of lines allowed to mismatch, 'git-apply -CNUM' requests the match of NUM lines of context. Omitting -C requests full context match, and that's what should be used for cvsexportcommit -p. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git-archive: make tar the default formatRené Scharfe2007-04-093-5/+12
| | | | | | | | | | | | | | | | As noted by Junio, --format=tar should be assumed if no format was specified. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'jc/push'Junio C Hamano2007-04-081-7/+10
|\ \ | | | | | | | | | | | | | | | * jc/push: git-push to multiple locations does not stop at the first failure git-push reports the URL after failing.
| * | git-push to multiple locations does not stop at the first failureJunio C Hamano2007-04-071-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When pushing into multiple repositories with git push, via multiple URL in .git/remotes/$shorthand or multiple url variables in [remote "$shorthand"] section, we used to stop upon the first failure. Continue the operation and report the failure at the end. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | git-push reports the URL after failing.Junio C Hamano2007-04-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This came up on #git when somebody was getting 'unable to create ./objects/tmp_oXXXX' but sweared he had write permission to that directory. It turned out that the repository URL was changed and he was accessing a repository he does not have a write permission anymore. I am not sure how much this would have helped somebody who believed he was accessing location when the permission of that location was changed while he was looking the other way, though. But giving more information on the error path would be better, and the next change would be helped with this as well. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'jc/merge-subtree'Junio C Hamano2007-04-087-3/+373
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/merge-subtree: A new merge stragety 'subtree'. It is safe to merge this early as this is a feature that user explicitly needs to ask for and would not trigger otherwise. A known issue with the current implementation is that the subtree matching heuristics is very stupid. It could run ls-tree twice and try to count intersection. Giving it wider audience would help it to get improved by motivated volunteers. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | A new merge stragety 'subtree'.Junio C Hamano2007-04-077-3/+373
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merge strategy largely piggy-backs on git-merge-recursive. When merging trees A and B, if B corresponds to a subtree of A, B is first adjusted to match the tree structure of A, instead of reading the trees at the same level. This adjustment is also done to the common ancestor tree. If you are pulling updates from git-gui repository into git.git repository, the root level of the former corresponds to git-gui/ subdirectory of the latter. The tree object of git-gui's toplevel is wrapped in a fake tree object, whose sole entry has name 'git-gui' and records object name of the true tree, before being used by the 3-way merge code. If you are merging the other way, only the git-gui/ subtree of git.git is extracted and merged into git-gui's toplevel. The detection of corresponding subtree is done by comparing the pathnames and types in the toplevel of the tree. Heuristics galore! That's the git way ;-). Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'js/fetch-progress'Junio C Hamano2007-04-081-4/+10
|\ \ \ | | | | | | | | | | | | | | | | * js/fetch-progress: git-fetch: add --quiet
| * | | git-fetch: add --quietJunio C Hamano2007-03-091-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass it to underlying fetch-pack, and also have it affect if -v is passed to http-fetch and rsync. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'maint'Junio C Hamano2007-04-082-22/+31
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | * maint: Add Documentation/cmd-list.made to .gitignore git-svn: fix log command to avoid infinite loop on long commit messages git-svn: dcommit/rebase confused by patches with git-svn-id: lines git-svn: bail out on incorrect command-line options
| * | | Add Documentation/cmd-list.made to .gitignoreJunio C Hamano2007-04-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Noticed by Randal L. Schwartz. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | git-svn: fix log command to avoid infinite loop on long commit messagesEric Wong2007-04-081-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug has been around since the the conversion to use the Git.pm library back in October or November. Eventually I'd like "git rev-list/log" to have the option to not truncate overly long messages. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | git-svn: dcommit/rebase confused by patches with git-svn-id: linesEric Wong2007-04-081-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When patches are merged from another git-svn managed branch, they will have the git-svn-id: metadata line in them (generated by git-format-patch). When doing rebase or dcommit via git-svn, this would cause git-svn to find the wrong upstream branch. We now verify that the commit is consistent with the value in the .rev_db file. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | git-svn: bail out on incorrect command-line optionsEric Wong2007-04-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "git svn log" is the only command that needs the pass-through option in Getopt::Long; otherwise we will bail out and let the user know something is wrong. Also, avoid printing out unaccepted mixed-case options (that are reserved for the command-line) such as --useSvmProps in the usage() function. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Start 1.5.2 cycle by prepareing RelNotes for it.Junio C Hamano2007-04-072-1/+77
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'jc/read-tree-df' (early part)Junio C Hamano2007-04-074-28/+167
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'jc/read-tree-df' (early part): Fix switching to a branch with D/F when current branch has file D. Fix twoway_merge that passed d/f conflict marker to merged_entry(). Fix read-tree --prefix=dir/. unpack-trees: get rid of *indpos parameter. unpack_trees.c: pass unpack_trees_options structure to keep_entry() as well. add_cache_entry(): removal of file foo does not conflict with foo/bar
| * | | | Fix switching to a branch with D/F when current branch has file D.Junio C Hamano2007-04-041-1/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This loosens the over-eager verify_absent() check that gets upset to find directory D in the current working tree when switching to a branch that has a file there. The check needs to make sure that we do not lose precious working tree files as a result of removing directory D and replacing it with the file from the other branch, which is a tad expensive but this is a less common case. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Fix twoway_merge that passed d/f conflict marker to merged_entry().Junio C Hamano2007-04-041-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When switching from one tree to another, we should not send a marker that says "this file does not exist in the new tree -- I am a placeholder to tell you that, and not a real blob" down to merged_entry() as the result of the merge.
| * | | | Fix read-tree --prefix=dir/.Junio C Hamano2007-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing code is not wrong per-se, but it started scanning the index from a location that does not match the tree being read, and wasted cycles. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | unpack-trees: get rid of *indpos parameter.Junio C Hamano2007-04-042-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variable keeps track of which entry in the original index the traversal is looking at, and belongs to the unpack_trees_options structure along with other traversal status information. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | unpack_trees.c: pass unpack_trees_options structure to keep_entry() as well.Junio C Hamano2007-04-041-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other decision functions, deleted_entry() and merged_entry() take one as their parameter, and this function should. I'll be introducing a separate index to build the result in, and am planning to pass it as the part of the structure. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | add_cache_entry(): removal of file foo does not conflict with foo/barJunio C Hamano2007-04-041-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similarly, removal of file foo/bar does not conflict with a file foo. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Merge branch 'maint'Junio C Hamano2007-04-072-4/+50
|\ \ \ \ \ | | |/ / / | |/| | / | |_|_|/ |/| | | | | | | * maint: Prepare for 1.5.1.1 cvsserver: small corrections to asciidoc documentation
| * | | Prepare for 1.5.1.1Junio C Hamano2007-04-072-1/+47
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | cvsserver: small corrections to asciidoc documentationFrank Lichtenheld2007-04-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a typo: s/Not/Note/ Some formating fixes: Use ` ` syntax for all filenames and ' ' syntax for all commandline switches. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'jc/index-output'Junio C Hamano2007-04-0713-25/+66
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/index-output: git-read-tree --index-output=<file> _GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file. Conflicts: builtin-apply.c
| * | | | git-read-tree --index-output=<file>Junio C Hamano2007-04-036-16/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This corrects the interface mistake of the previous one, and gives a command line parameter to the only plumbing command that currently needs it: "git-read-tree". We can add the calls to set_alternate_index_output() to other plumbing commands that update the index if/when needed. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | _GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file.Junio C Hamano2007-04-0313-23/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When defined, this allows plumbing commands that update the index (add, apply, checkout-index, merge-recursive, mv, read-tree, rm, update-index, and write-tree) to write their resulting index to an alternative index file while holding a lock to the original index file. With this, git-commit that jumps the index does not have to make an extra copy of the index file, and more importantly, it can do the update while holding the lock on the index. However, I think the interface to let an environment variable specify the output is a mistake, as shown in the documentation. If a curious user has the environment variable set to something other than the file GIT_INDEX_FILE points at, almost everything will break. This should instead be a command line parameter to tell these plumbing commands to write the result in the named file, to prevent stupid mistakes. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Merge branch 'fp/make-j'Junio C Hamano2007-04-071-2/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * fp/make-j: Makefile: Add '+' to QUIET_SUBDIR0 to fix parallel make.
| * | | | | Makefile: Add '+' to QUIET_SUBDIR0 to fix parallel make.Fernando J. Pereda2007-04-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Fernando J. Pereda <ferdy@gentoo.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | | Merge branch 'cc/bisect'Junio C Hamano2007-04-073-66/+199
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cc/bisect: git-bisect: allow bisecting with only one bad commit. t6030: add a bit more tests to git-bisect git-bisect: modernization Documentation: bisect: "start" accepts one bad and many good commits Bisect: teach "bisect start" to optionally use one bad and many good revs.
| * | | | | | git-bisect: allow bisecting with only one bad commit.Junio C Hamano2007-04-062-45/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows you to say: git bisect start git bisect bad $bad git bisect next to start bisection without knowing a good commit. This would have you try a commit that is half-way since the beginning of the history, which is rather wasteful if you already know a good commit, but if you don't (or your history is short enough that you do not care), there is no reason not to allow this. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | t6030: add a bit more tests to git-bisectJunio C Hamano2007-04-061-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Verify that git-bisect does not start before getting one bad and one good commit. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | git-bisect: modernizationJunio C Hamano2007-04-051-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This slightly modernizes the bisect script to use show-ref/for-each-ref instead of looking into $GIT_DIR/refs files directly. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | Documentation: bisect: "start" accepts one bad and many good commitsChristian Couder2007-04-051-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | Bisect: teach "bisect start" to optionally use one bad and many good revs.Christian Couder2007-04-052-26/+99
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One bad commit is fundamentally needed for bisect to run, and if we beforehand know more good commits, we can narrow the bisect space down without doing the whole tree checkout every time we give good commits. This patch implements: git bisect start [<bad> [<good>...]] [--] [<pathspec>...] as a short-hand for this command sequence: git bisect start git bisect bad $bad git bisect good $good1 $good2... On the other hand, there may be some confusion between revs (<bad> and <good>...) and <pathspec>... if -- is not used and if an invalid rev or a pathspec that looks like a rev is given. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | | Merge branch 'jc/checkout' (early part)Junio C Hamano2007-04-072-3/+64
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'jc/checkout' (early part): checkout: allow detaching to HEAD even when switching to the tip of a branch
| * | | | | | checkout: allow detaching to HEAD even when switching to the tip of a branchJunio C Hamano2007-04-032-3/+64
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | You cannot currently checkout the tip of an existing branch without moving to the branch. This allows you to detach your HEAD and place it at such a commit, with: $ git checkout master^0 Signed-off-by: Junio C Hamano <junkio@cox.net>