summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-08-24Merge branch 'jc/no-slim-shell'Libravatar Junio C Hamano4-19/+7
* jc/no-slim-shell: Build-in "git-shell" shell: do not play duplicated definition games to shrink the executable
2008-08-24Merge branch 'maint' to sync with 1.6.0.1Libravatar Junio C Hamano11-52/+126
2008-08-24GIT 1.6.0.1Libravatar Junio C Hamano1-6/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-24Merge branch 'ag/maint-combine-diff-fix' into maintLibravatar Junio C Hamano2-0/+28
* ag/maint-combine-diff-fix: Respect core.autocrlf in combined diff
2008-08-24Merge branch 'mv/maint-merge-fix' into maintLibravatar Junio C Hamano4-8/+32
* mv/maint-merge-fix: merge: fix numerus bugs around "trivial merge" area
2008-08-24git-submodule - Use "get_default_remote" from git-parse-remoteLibravatar Mark Levedahl1-3/+2
Resolve_relative_url was using its own code for this function, but this is duplication with the best result that this continues to work. Replace with the common function provided by git-parse-remote. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-24Documentation: clarify pager configurationLibravatar Jonathan Nieder2-3/+9
The unwary user may not know how to disable the -FRSX options. Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-24Documentation: clarify pager.<cmd> configurationLibravatar Jonathan Nieder1-3/+5
It was not obvious from the text that pager.<cmd> is a boolean setting. While we're changing the description, make some other improvements: lest we forget and fret, clarify that -p and pager.<cmd> do not kick in when stdout is not a tty; point to related core.pager and GIT_PAGER settings; use renamed --paginate option. Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-24Clean up the git-p4 documentationLibravatar Simon Hausmann1-31/+38
This patch massages the documentation a bit for improved readability and cleans it up from outdated options/commands. Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-23Respect core.autocrlf in combined diffLibravatar Alexander Gavrilov2-0/+28
Fix git-diff to make it produce useful 3-way diffs for merge conflicts in repositories with autocrlf enabled. Otherwise it always reports that the whole file was changed, because it uses the contents from the working tree without necessary conversion. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-23Makefile: enable SNPRINTF_RETURNS_BOGUS for HP-UXLibravatar Miklos Vajna1-0/+1
In 81cc66a, customization has been added to Makefile for supporting HP-UX, but git commit is still problematic. This should fix the issue. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Acked-by: Robert Schiele <rschiele@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-23Merge branch 'maint'Libravatar Junio C Hamano6-5/+10
* maint: unpack_trees(): protect the handcrafted in-core index from read_cache() git-p4: Fix one-liner in p4_write_pipe function. Completion: add missing '=' for 'diff --diff-filter' Fix 'git help help'
2008-08-23merge: fix numerus bugs around "trivial merge" areaLibravatar Junio C Hamano4-8/+32
The "trivial merge" codepath wants to optimize itself by making an internal call to the read-tree machinery, but it does not read the index before doing so, and the codepath is never exercised. Incidentally, this failure to read the index upfront means that the safety to refuse doing anything when the index is unmerged does not kick in, either. These two problem are fixed by using read_cache_unmerged() that does read the index before checking if it is unmerged at the beginning of cmd_merge(). The primary logic of the merge, however, assumes that the process never reads the index in-core, and the call to write_cache_as_tree() it makes from write_tree_trivial() will always read from the on-disk index that is prepared the strategy back-ends. This assumption is now broken by the above fix. To fix this issue, we now call discard_cache() before calling write_tree_trivial() when it wants to write the on-disk index as a tree. When multiple strategies are tried, their results are evaluated by reading the resulting index and inspecting it. The codepath needs to make a call to read_cache() for each successful strategy, and for that to work, they need to discard_cache() the one read by the previous round. Also the "trivial merge" forgot that the current commit is one of the parents of the resulting commit. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-23unpack_trees(): protect the handcrafted in-core index from read_cache()Libravatar Junio C Hamano3-2/+6
unpack_trees() rebuilds the in-core index from scratch by allocating a new structure and finishing it off by copying the built one to the final index. The resulting in-core index is Ok for most use, but read_cache() does not recognize it as such. The function is meant to be no-op if you already have loaded the index, until you call discard_cache(). This change the way read_cache() detects an already initialized in-core index, by introducing an extra bit, and marks the handcrafted in-core index as initialized, to avoid this problem. A better fix in the longer term would be to change the read_cache() API so that it will always discard and re-read from the on-disk index to avoid confusion. But there are higher level API that have relied on the current semantics, and they and their users all need to get converted, which is outside the scope of 'maint' track. An example of such a higher level API is write_cache_as_tree(), which is used by git-write-tree as well as later Porcelains like git-merge, revert and cherry-pick. In the longer term, we should remove read_cache() from there and add one to cmd_write_tree(); other callers expect that the in-core index they prepared is what gets written as a tree so no other change is necessary for this particular codepath. The original version of this patch marked the index by pointing an otherwise wasted malloc'ed memory with o->result.alloc, but this version uses Linus's idea to use a new "initialized" bit, which is conceptually much cleaner. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22git-p4: Fix one-liner in p4_write_pipe function.Libravatar Tor Arvid Lund1-1/+1
The function built a p4 command string via the p4_build_cmd function, but ignored the result. Signed-off-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22git-submodule: replace duplicated code with a module_list functionLibravatar David Aguilar1-4/+13
Several call sites in git-submodule.sh used the same idiom for getting submodule information: git ls-files --stage -- "$@" | grep '^160000 ' This patch removes this duplication by introducing a module_list function. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22git-merge documentation: more details about resolving conflictsLibravatar Dan Hensgen1-6/+18
Signed-off-by: Dan Hensgen <dan@methodhead.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22Extend "checkout --track" DWIM to support more casesLibravatar Alex Riesen4-17/+46
The code handles additionally "refs/remotes/<something>/name", "remotes/<something>/name", and "refs/<namespace>/name". Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22Revert "Convert output messages in merge-recursive to past tense."Libravatar Jonathan del Strother1-18/+18
During a conflicting merge, you would typically see: Auto-merged foo.txt CONFLICT (content): Merge conflict in foo.txt Recorded preimage for 'foo.txt' Automatic merge failed; fix conflicts and then commit the result. and left wondering what happened to "foo.txt". Did it succeed, and then conflicted, and then what? This is because historically there was a progress bar displayed before the auto-merge is mentioned, and it was expected to take long time, before we can say "Auto-merged foo.txt". It turns out it was not the case, and the original wording "Auto-merging foo.txt" we used to have before 89f40be (Convert output messages in merge-recursive to past tense., 2007-01-14) is better. Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22Completion: add missing '=' for 'diff --diff-filter'Libravatar Eric Raible1-1/+1
Signed-off-by: Eric Raible <raible@gmail.com> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22templates/Makefile: install is unnecessary, just use mkdir -pLibravatar Junio C Hamano1-2/+2
The native install on some platforms (namely IRIX 6.5) treats non-absolute paths as being relative to the root directory rather than relative to the current directory. Work around this by avoiding install in this case since it is unnecessary, and instead depend on the local umask setting and use mkdir. Tested-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-22remote.c: add a function for deleting a refspec array and use it (twice)Libravatar Brandon Casey2-2/+28
A number of call sites allocate memory for a refspec array, populate its members with heap memory, and then free only the refspec pointer while leaking the memory allocated for the member elements. Provide a function for freeing the elements of a refspec array and the array itself. Caution to callers: code paths must be checked to ensure that the refspec members "src" and "dst" can be passed to free. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21filter-branch: Grok special characters in tag namesLibravatar Johannes Sixt2-5/+15
The tag rewriting code used a 'sed' expression to substitute the new tag name into the corresponding field of the annotated tag object. But this is problematic if the tag name contains special characters. In particular, if the tag name contained a slash, then the 'sed' expression had a syntax error. We now protect against this by using 'printf' to assemble the tag header. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21test-lib: do not remove trash_directory if called with --debugLibravatar Johannes Schindelin1-1/+1
Sometimes you want to keep the trash directory, even if all tests passed. For example, when extending tests, it comes it quite handy. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21provide more errors for the "merge into empty head" caseLibravatar Paolo Bonzini1-0/+5
A squash merge into an unborn branch could be implemented by building the index from the merged-from branch, and doing a single commit, but this is not supported yet. A non-fast-forward merge into an unborn branch does not make any sense, because you cannot make a merge commit if you don't have a commit to use as the parent. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21Make reflog query '@{1219188291}' act as '@{2008.8.19.16:24:51.-0700}'Libravatar Shawn O. Pearce1-1/+4
As we support seconds-since-epoch in $GIT_COMMITTER_TIME we should also support it in a reflog @{...} style notation. We can easily tell this part from @{nth} style notation by looking to see if the value is unreasonably large for an @{nth} style notation. The value 100000000 was chosen as it is already used by date.c to disambiguate yyyymmdd format from a seconds-since-epoch time value. A reflog with 100,000,000 record entries is also simply not valid. Such a reflog would require at least 7.7 GB to store just the old and new SHA-1 values. So our randomly chosen upper limit for @{nth} notation is "big enough". Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21config.mak.in: Pass on LDFLAGS from configureLibravatar Neil Roberts1-0/+1
The configure script allows you to specify flags to pass to the linker step in the LDFLAGS environment variable but this was being ignored in the Makefile. Now a make variable gets set to the value passed down from the configure script. Signed-off-by: Neil Roberts <bpeeluk@yahoo.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21Fix 'git help help'Libravatar Miklos Vajna1-1/+2
git help foo invokes man git-foo if foo is a git command, otherwise it invokes man gitfoo. 'help' is not a git command, but the manual page is called git-help, so add this special exception. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Acked-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-21Merge branch 'maint'Libravatar Junio C Hamano3-4/+10
* maint: compat/snprintf.c: handle snprintf's that always return the # chars transmitted git-svn: fix dcommit to urls with embedded usernames revision.h: make show_early_output an extern which is defined in revision.c
2008-08-21compat/snprintf.c: handle snprintf's that always return the # chars transmittedLibravatar Brandon Casey1-0/+4
Some platforms provide a horribly broken snprintf. More broken than the platforms that return -1 when there is too little space in the target buffer for the formatted string. Some platforms provide an snprintf which _always_ returns the number of characters transmitted to the buffer, regardless of whether there was enough space or not. IRIX 6.5 is such a platform. IRIX does have a working snprintf(), but it is only provided when _NO_XOPEN5 evaluates to zero, and this only happens if _XOPEN_SOURCE is defined, but definition of _XOPEN_SOURCE prevents inclusion of many other common functions and defines. So it must be avoided. Work around these horribly broken snprintf implementations by detecting an snprintf call which results in the number of transmitted characters exactly equal to the length of our buffer and retrying with a larger buffer just to be safe. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Acked-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20Teach "git diff -p" HTML funcname patternsLibravatar Johan Herland2-2/+5
Find lines with <h1>..<h6> tags. [jc: while at it, reordered entries to sort alphabetically.] Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20Teach "git diff -p" Python funcname patternsLibravatar Kirill Smelkov2-0/+3
Find classes, functions, and methods definitions. Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20git-svn: fix dcommit to urls with embedded usernamesLibravatar Eric Wong1-3/+5
Don't rely on the extracted URL from working_head_info since that has the username removed. Instead use the $gs->full_url method (as before with ba24e74 (git-svn: add ability to specify --commit-url for dcommit, 2008-08-07)) to give us the URL to commit to if --commit-url is not specified. Aditionally, since we clean usernames from URLs, checking the URL after rebase can fail because it doesn't match the URL we used to commit; so unconditionally provide a username-free URL for checking the result of the refetch. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20Merge branch 'ml/submodule-foreach'Libravatar Junio C Hamano2-2/+39
* ml/submodule-foreach: git-submodule - Add 'foreach' subcommand
2008-08-20Merge branch 'pm/log-exit-code'Libravatar Junio C Hamano2-2/+11
* pm/log-exit-code: Teach git log --exit-code to return an appropriate exit code Teach git log --check to return an appropriate exit code
2008-08-20Merge branch 'sb/commit-tree-minileak'Libravatar Junio C Hamano1-1/+4
* sb/commit-tree-minileak: Fix commit_tree() buffer leak
2008-08-20Merge branch 'pb/reflog-dwim'Libravatar Junio C Hamano1-4/+4
* pb/reflog-dwim: builtin-reflog: Allow reflog expire to name partial ref
2008-08-20Merge branch 'jc/add-stop-at-symlink'Libravatar Junio C Hamano4-3/+45
* jc/add-stop-at-symlink: add: refuse to add working tree items beyond symlinks update-index: refuse to add working tree items beyond symlinks
2008-08-20Merge branch 'kh/diff-tree'Libravatar Junio C Hamano3-17/+72
* kh/diff-tree: Add test for diff-tree --stdin with two trees Teach git diff-tree --stdin to diff trees diff-tree: Note that the commit ID is printed with --stdin Refactoring: Split up diff_tree_stdin
2008-08-20Merge branch 'mg/count-objects'Libravatar Junio C Hamano3-3/+7
* mg/count-objects: count-objects: Add total pack size to verbose output
2008-08-20Merge branch 'mz/push-verbose'Libravatar Junio C Hamano1-2/+11
* mz/push-verbose: Make push more verbose about illegal combination of options
2008-08-20Merge branch 'jc/index-extended-flags'Libravatar Junio C Hamano2-0/+5
* jc/index-extended-flags: index: future proof for "extended" index entries
2008-08-20Merge branch 'cc/merge-base-many'Libravatar Junio C Hamano5-28/+133
* cc/merge-base-many: git-merge-octopus: use (merge-base A (merge B C D E...)) for stepwise merge merge-base-many: add trivial tests based on the documentation documentation: merge-base: explain "git merge-base" with more than 2 args merge-base: teach "git merge-base" to drive underlying merge_bases_many()
2008-08-20Merge branch 'jc/test-deeper'Libravatar Junio C Hamano50-131/+152
* jc/test-deeper: tests: use $TEST_DIRECTORY to refer to the t/ directory
2008-08-20Merge branch 'js/parallel-test'Libravatar Junio C Hamano4-7/+14
* js/parallel-test: Update t/.gitignore to ignore all trash directories Enable parallel tests tests: Clarify dependencies between tests, 'aggregate-results' and 'clean' t9700: remove useless check
2008-08-20revision.h: make show_early_output an extern which is defined in revision.cLibravatar Brandon Casey1-1/+1
The variable show_early_output is defined in revision.c and should be declared extern in revision.h so that the linker does not complain about multiply defined variables. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20Update draft release notes for 1.6.1Libravatar Junio C Hamano1-5/+21
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20Merge branch 'maint'Libravatar Junio C Hamano18-23/+108
* maint: Update draft release notes for 1.6.0.1 Add hints to revert documentation about other ways to undo changes Install templates with the user and group of the installing personality "git-merge": allow fast-forwarding in a stat-dirty tree completion: find out supported merge strategies correctly decorate: allow const objects to be decorated for-each-ref: cope with tags with incomplete lines diff --check: do not get confused by new blank lines in the middle remote.c: remove useless if-before-free test mailinfo: avoid violating strbuf assertion git format-patch: avoid underrun when format.headers is empty or all NLs
2008-08-20Update draft release notes for 1.6.0.1Libravatar Junio C Hamano1-2/+18
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-08-20Add hints to revert documentation about other ways to undo changesLibravatar Tarmigan Casebolt1-0/+9
Based on its name, people may read the 'git revert' documentation when they want to undo local changes, especially people who have used other SCM's. 'git revert' may not be what they had in mind, but git provides several other ways to undo changes to files. We can help them by pointing them towards the git commands that do what they might want to do. Cc: Daniel Barkalow <barkalow@iabervon.org> Cc: Lea Wiemann <lewiemann@gmail.com> Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>