summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-09-15t6019: avoid refname collision on case-insensitive systemsLibravatar Thomas Rast1-8/+11
The criss-cross tests kept failing for me because of collisions of 'a' with 'A' etc. Prefix the lowercase refnames with an extra letter to disambiguate. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Acked-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-25revision: do not include sibling history in --ancestry-path outputLibravatar Junio C Hamano2-7/+11
If the commit specified as the bottom of the commit range has a direct parent that has another child commit that contributed to the resulting history, "rev-list --ancestry-path" was confused and listed that side history as well, due to the command line parser subtlety corrected by the previous commit. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-25revision: keep track of the end-user input from the command lineLibravatar Junio C Hamano2-4/+53
Given a complex set of revision specifiers on the command line, it is too late to look at the flags of the objects in the initial traversal list at the beginning of limit_list() in order to determine what the objects the end-user explicitly listed on the command line were. The process to move objects from the pending array to the traversal list may have marked objects that are not mentioned as UNINTERESTING, when handle_commit() marked the parents of UNINTERESTING commits mentioned on the command line by calling mark_parents_uninteresting(). This made "rev-list --ancestry-path ^A ..." to mistakenly list commits that are descendants of A's parents but that are not descendants of A itself, as ^A from the command line causes A and its parents marked as UNINTERESTING before coming to limit_list(), and we try to enumerate the commits that are descendants of these commits that are UNINTERESTING before we start walking the history. It actually is too late even if we inspected the pending object array before calling prepare_revision_walk(), as some of the same objects might have been mentioned twice, once as positive and another time as negative. The "rev-list --some-option A --not --all" command may want to notice, even if the resulting set is empty, that the user showed some interest in "A" and do something special about it. Prepare a separate array to keep track of what syntactic element was used to cause each object to appear in the pending array from the command line, and populate it as setup_revisions() parses the command line. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-25rev-list: Demonstrate breakage with --ancestry-path --allLibravatar Brad King1-0/+35
The option added by commit ebdc94f3 (revision: --ancestry-path, 2010-04-20) does not work properly in combination with --all, at least in the case of a criss-cross merge: b---bc / \ / a X \ / \ c---cb There are no descendants of 'cb' in the history. The command git rev-list --ancestry-path cb..bc correctly reports no commits. However, the command git rev-list --ancestry-path --all ^cb reports 'bc'. Add a test case to t6019-rev-list-ancestry-path demonstrating this breakage. Signed-off-by: Brad King <brad.king@kitware.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-06revision: Turn off history simplification in --ancestry-path modeLibravatar Johan Herland2-0/+18
When using --ancestry-path together with history simplification (typically triggered by path limiting), history simplification would get in the way of --ancestry-path by prematurely removing the parent links between commits on which the ancestry path calculations are made. This patch disables this history simplification when --ancestry-path is enabled. This is similar to what e.g. --full-history already does. The patch also includes a simple testcase verifying that --ancestry-path works together with path limiting. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-06revision: Fix typo in --ancestry-path error messageLibravatar Johan Herland1-1/+1
Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-06Documentation/rev-list-options.txt: Explain --ancestry-pathLibravatar Johan Herland1-2/+48
Add a short paragraph explaining --ancestry-path, followed by a more detailed example. This mirrors how the other history simplification options are documented. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-06Documentation/rev-list-options.txt: Fix missing line in example history graphLibravatar Johan Herland1-1/+1
In the detailed explanation of how the revision machinery does history simplification, the current text presents an example history and explains how various options of the revision machinery affect the resulting list of commits. The first simplification mode mentioned is the default mode, in which a number of commits is omitted from the example graph according to the history simplification rules. The text states (among other things) that commit "C was considered via N, but is TREESAME", and therefore omitted. However, the accompanying graph does not list the effect on the implicit parentage, i.e. that commit I takes C's place as a parent of N. Running 'git rev-list --parents P' does indeed list I as a second parent of N, and the accompanying graph should therefore also show this line. Signed-off-by: Johan Herland <johan@herland.net> Cc: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-21revision: --ancestry-pathLibravatar Junio C Hamano3-0/+159
"rev-list A..H" computes the set of commits that are ancestors of H, but excludes the ones that are ancestors of A. This is useful to see what happened to the history leading to H since A, in the sense that "what does H have that did not exist in A" (e.g. when you have a choice to update to H from A). x---x---A---B---C <-- topic / \ x---x---x---o---o---o---o---M---D---E---F---G <-- dev / \ x---o---o---o---o---o---o---o---o---o---o---o---N---H <-- master The result in the above example would be the commits marked with caps letters (except for A itself, of course), and the ones marked with 'o'. When you want to find out what commits in H are contaminated with the bug introduced by A and need fixing, however, you might want to view only the subset of "A..B" that are actually descendants of A, i.e. excluding the ones marked with 'o'. Introduce a new option --ancestry-path to compute this set with "rev-list --ancestry-path A..B". Note that in practice, you would build a fix immediately on top of A and "git branch --contains A" will give the names of branches that you would need to merge the fix into (i.e. topic, dev and master), so this may not be worth paying the extra cost of postprocessing. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-19Merge branch 'maint'Libravatar Junio C Hamano3-7/+8
* maint: t7012: Mark missing tests as TODO reflog: remove 'show' from 'expire's usage string MSVC: Fix build by adding missing termios.h dummy
2010-04-19t7012: Mark missing tests as TODOLibravatar Michael J Gruber1-6/+6
Currently, there are 6 tests which are not even written but are 'test_expect_failure message false'. Do not abuse test_expect_failure as a to do marker, but mark them as '#TODO' instead. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Acked-by: Nguyen Thai Ngoc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-19reflog: remove 'show' from 'expire's usage stringLibravatar SZEDER Gábor1-1/+1
Most of 'expire's options are not recognized by the 'show' subcommand, hence it errors out. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-19Merge branch 'maint-1.6.6' into maintLibravatar Junio C Hamano1-0/+1
* maint-1.6.6: MSVC: Fix build by adding missing termios.h dummy
2010-04-19MSVC: Fix build by adding missing termios.h dummyLibravatar Johannes Sixt1-0/+1
A use of this header file was introduced in eb80042 (Add missing #include to support TIOCGWINSZ on Solaris, 2010-01-11). Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Git 1.7.1-rc2Libravatar Junio C Hamano2-2/+9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Merge branch 'rr/remote-helper-doc'Libravatar Junio C Hamano2-58/+119
* rr/remote-helper-doc: Documentation/remote-helpers: Fix typos and improve language Fixup: Second argument may be any arbitrary string Documentation/remote-helpers: Add invocation section Documentation/urls: Rewrite to accomodate <transport>::<address> Documentation/remote-helpers: Rewrite description
2010-04-18Merge branch 'wp/doc-filter-direction'Libravatar Junio C Hamano1-4/+4
* wp/doc-filter-direction: documentation: clarify direction of core.autocrlf
2010-04-18Merge branch 'jk/maint-diffstat-overflow'Libravatar Junio C Hamano1-9/+12
* jk/maint-diffstat-overflow: diff: use large integers for diffstat calculations
2010-04-18Merge branch 'jg/auto-initialize-notes-with-percent-n-in-format'Libravatar Junio C Hamano4-5/+64
* jg/auto-initialize-notes-with-percent-n-in-format: t3301: add tests to use --format="%N" pretty: Initialize notes if %N is used
2010-04-18Merge branch 'maint'Libravatar Junio C Hamano1-2/+2
* maint: Documentation: Describe other situations where -z affects git diff
2010-04-18Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano9-44/+60
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: Display dirty submodules correctly gitk: Fix display of copyright symbol gitk: Add emacs editor variable block gitk: Avoid calling tk_setPalette on Windows gitk: Don't clobber "Remember this view" setting gitk: Add comments to explain encode_view_opts and decode_view_opts gitk: Use consistent font for all text input fields gitk: Set the font for all listbox widgets gitk: Set the font for all spinbox widgets gitk: Remove forced use of sans-serif font gitk: Add Ctrl-W shortcut for closing the active window
2010-04-18Documentation/remote-helpers: Fix typos and improve languageLibravatar Ramkumar Ramachandra1-28/+23
Fix some typos and errors in grammar and tense. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Fixup: Second argument may be any arbitrary stringLibravatar Ramkumar Ramachandra1-3/+2
This is intended to be a fixup for commit ad466d1 in pu. As Jonathan Neider pointed out, the second argument may be any arbitrary string, and need not conform to any URL-like shape. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Documentation/remote-helpers: Add invocation sectionLibravatar Ramkumar Ramachandra1-1/+34
Add an 'Invocation' section to specify what the command line arguments mean. Also include a link to git-remote in the 'See Also' section. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Documentation/urls: Rewrite to accomodate <transport>::<address>Libravatar Ramkumar Ramachandra1-23/+36
Rewrite the first part of the document to explicitly show differences between the URLs that can be used with different transport protocols. Mention <transport>::<address> format to explicitly invoke a remote helper. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Documentation/remote-helpers: Rewrite descriptionLibravatar Ramkumar Ramachandra1-6/+27
Rewrite the description section to describe what exactly remote helpers are and the need for them. Also mention the curl family of remote helpers as an example. [jc: with readability fixes from Jonathan squashed in] Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18Documentation: Describe other situations where -z affects git diffLibravatar Charles Bailey1-2/+2
-z also alters the behaviour of --name-only and --name-status. Signed-off-by: Charles Bailey <charles@hashpling.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18rebase-interactive: silence warning when no commits rewrittenLibravatar Jeff King1-0/+1
If you do a "rebase -i" and don't change any commits, nothing is rewritten, and we have no REWRITTEN_LIST. The shell prints out an ugly message: $ GIT_EDITOR=true git rebase -i HEAD^ /path/to/git-rebase--interactive: 1: cannot open /path/to/repo/.git/rebase-merge/rewritten-list: No such file Successfully rebased and updated refs/heads/master. We can fix it by not running "notes copy" at all if nothing was rewritten. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-18t3301: add tests to use --format="%N"Libravatar Junio C Hamano1-0/+18
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17Merge branch 'maint'Libravatar Junio C Hamano4-13/+23
* maint: t1010-mktree: Adjust expected result to code and documentation combined diff: correctly handle truncated file Document new "already-merged" rule for branch -d
2010-04-17t6006: do not write to /tmpLibravatar Matthew Ogilvie1-1/+1
Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17git-instaweb: pass through invoking user's path to gitweb CGI scriptsLibravatar Chris Webb1-2/+2
When used with lighttpd or mongoose, git-instaweb previously passed a hard-coded, default value of PATH to the gitweb CGI script. Use the invoking user's value for PATH for this instead. (This is already implicitly the behaviour for other web servers supported by git-instaweb.) Signed-off-by: Chris Webb <chris@arachsys.com> Acked-by: Eric Wong <normalperson@yhbt.net>
2010-04-17gitweb: simplify gitweb.min.* generation and clean-up rulesLibravatar Junio C Hamano1-37/+38
GITWEB_CSS and GITWEB_JS are meant to be "what URI should the installed cgi script use to refer to the stylesheet and JavaScript", never "this is the name of the file we are building". Don't use them to decide what file to build minified versions in. While we are at it, lose FILES that is used only for "clean" target in a misguided way. "make clean" should try to remove all the potential build artifacts regardless of a minor configuration change. Instead of trying to remove only the build product "make clean" would have created if it were run without "clean", explicitly list the three potential build products for removal. Tested-by: Mark Rada <marada@uwaterloo.co> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17tag -v: use RUN_GIT_CMD to run verify-tagLibravatar Jonathan Nieder1-2/+2
This is the preferred way to run a git command. The only obvious observable effects I can think of are that the exec is properly reported in GIT_TRACE output and that verifying signed tags will still work if the git-verify-tag hard link in gitexecdir goes missing. Helped-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17documentation: clarify direction of core.autocrlfLibravatar Will Palmer1-4/+4
The description for core.autocrlf refers to reads from / writes to "the filesystem", the only use of this rather ambiguous term, which technically could be referring to the git object database. (All other mentions are part of phrases such as "..filesystems (like NFS).."). Other sections, including the section on core.safecrlf, use the term "work tree" for the same purpose as the term "the filesystem" is used in the core.autocrlf section, so that seems like a good alternative, which makes it clearer what direction the addition/removal of CR characters occurs in. Signed-off-by: Will Palmer <wmpalmer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17diff: use large integers for diffstat calculationsLibravatar Jeff King1-9/+12
The diffstat "added" and "changed" fields generally store line counts; however, for binary files, they store file sizes. Since we store and print these values as ints, a diffstat on a file larger than 2G can show a negative size. Instead, let's use uintmax_t, which should be at least 64 bits on modern platforms. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17t1010-mktree: Adjust expected result to code and documentationLibravatar Michael J Gruber1-6/+4
The last two tests here were always supposed to fail in the sense that, according to code and documentation, mktree should read non-recursive ls-tree output, but not recursive one, and therefore explicitely refuses to deal with slashes. Adjust the test (must_fail) so that it succeeds when mktree dies on slashes. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17combined diff: correctly handle truncated fileLibravatar Thomas Rast2-6/+16
Consider an evil merge of two commits A and B, both of which have a file 'foo', but the merge result does not have that file. The combined-diff code learned in 4462731 (combine-diff: do not punt on removed or added files., 2006-02-06) to concisely show only the removal, since that is the evil part and the previous contents are presumably uninteresting. However, to diagnose an empty merge result, it overloaded the variable that holds the file's length. This means that the check also triggers for truncated files. Consequently, such files were not shown in the diff at all despite the merge being clearly evil. Fix this by adding a new variable that distinguishes whether the file was deleted (which is the case 4462731 handled) or truncated. In the truncated case, we show the full combined diff again, which is rather spammy but at least does not hide the evilness. Reported-by: David Martínez Martí <desarrollo@gestiweb.com> Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-17gitk: Display dirty submodules correctlyLibravatar Jens Lehmann1-8/+21
Since recently "git diff --submodule" prints out extra lines when the submodule contains untracked or modified files. Show all those lines of one submodule under the same header. Also for newly added or removed submodules the submodule name contained trailing garbage because the extraction of the name was not done right. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2010-04-15Document new "already-merged" rule for branch -dLibravatar Jonathan Nieder1-1/+3
v1.7.0-rc0~18^2 (branch -d: base the "already-merged" safety on the branch it merges with, 2009-12-29) taught ‘git branch’ a new heuristic for when it is safe to delete a branch without forcing the issue. It is safe to delete a branch "topic" without second thought if: - the branch "topic" is set up to pull from a (remote-tracking, usually) branch and is fully merged in that "upstream" branch, or - there is no branch.topic.merge configuration and branch "topic" is fully merged in the current HEAD. Update the man page to acknowledge the new rules. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-15Add .depend directories to .gitignoreLibravatar Jonathan Nieder1-1/+1
The makefile snippets that would land in these directories are already being ignored. Ignore the directories instead so they don’t show up in ‘git clean -n’ output. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-13Merge branch 'maint'Libravatar Junio C Hamano3-7/+8
* maint: Documentation/config.txt: default gc.aggressiveWindow is 250, not 10 Docs: Add -X option to git-merge's synopsis. Conflicts: Documentation/merge-options.txt
2010-04-13pretty: Initialize notes if %N is usedLibravatar Johannes Gilger3-5/+46
When using git log --pretty='%N' without an explicit --show-notes, git would segfault. This patches fixes this behaviour by loading the needed notes datastructures if --pretty is used and the format contains %N. When --pretty='%N' is used together with --no-notes, %N won't be expanded. This is an extension to a proposed patch by Jeff King. Signed-off-by: Johannes Gilger <heipei@hackvalue.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-13Documentation/config.txt: default gc.aggressiveWindow is 250, not 10Libravatar Jay Soffian1-1/+1
The default for gc.aggressiveWindow has been 250 since 1c192f3 (gc --aggressive: make it really aggressive, 2007-12-06). Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-12Docs: Add -X option to git-merge's synopsis.Libravatar Marc Branchaud2-6/+7
Also move -X's description next to -s's in merge-options.txt. This makes it easier to learn how to specify merge strategy options. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-11Merge branch 'jl/maint-submodule-gitfile-awareness'Libravatar Junio C Hamano3-7/+8
* jl/maint-submodule-gitfile-awareness: Windows: start_command: Support non-NULL dir in struct child_process
2010-04-11Windows: start_command: Support non-NULL dir in struct child_processLibravatar Johannes Sixt3-7/+8
A caller of start_command can set the member 'dir' to a directory to request that the child process starts with that directory as CWD. The first user of this feature was added recently in eee49b6 (Teach diff --submodule and status to handle .git files in submodules). On Windows, we have been lazy and had not implemented support for this feature, yet. This fixes the shortcoming. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-11Sync with 1.7.0.5Libravatar Junio C Hamano4-11/+39
2010-04-11Merge branch 'jc/doc-submit-gmail'Libravatar Junio C Hamano1-11/+24
* jc/doc-submit-gmail: SubmittingPatches: update GMail section
2010-04-11Git 1.7.0.5Libravatar Junio C Hamano4-3/+30
Signed-off-by: Junio C Hamano <gitster@pobox.com>