summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-11-30git add --intent-to-add: do not let an empty blob be committed by accidentLibravatar Junio C Hamano5-5/+45
Writing a tree out of an index with an "intent to add" entry is blocked. This implies that you cannot "git commit" from such a state; however you can still do "git commit -a" or "git commit $that_path". Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-28git add --intent-to-add: fix removal of cached emptinessLibravatar Junio C Hamano4-4/+7
This uses the extended index flag mechanism introduced earlier to mark the entries added to the index via "git add -N" with CE_INTENT_TO_ADD. The logic to detect an "intent to add" entry for the purpose of allowing "git rm --cached $path" is tightened to check not just for a staged empty blob, but with the CE_INTENT_TO_ADD bit. This protects an empty blob that was explicitly added and then modified in the work tree from being dropped with this sequence: $ >empty $ git add empty $ echo "non empty" >empty $ git rm --cached empty Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-28builtin-rm.c: explain and clarify the "local change" logicLibravatar Junio C Hamano1-11/+42
Explain the logic to check local modification a bit more in the comment, especially because the existing comment that talks about "git rm --cached" was placed in a part that was not about "--cached" at all. Also clarify "if .. else if .." structure. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-28Merge branch 'nd/narrow' (early part) into jc/add-i-t-aLibravatar Junio C Hamano2-14/+95
* 'nd/narrow' (early part): Extend index to save more flags
2008-11-27Merge branch 'cc/bisect-skip'Libravatar Junio C Hamano1-1/+18
* cc/bisect-skip: bisect: teach "skip" to accept special arguments like "A..B"
2008-11-27Merge branch 'js/mingw-rename-fix'Libravatar Junio C Hamano1-3/+12
* js/mingw-rename-fix: compat/mingw.c: Teach mingw_rename() to replace read-only files
2008-11-27Merge branch 'st/levenshtein'Libravatar Junio C Hamano1-1/+38
* st/levenshtein: Document levenshtein.c Fix deletion of last character in levenshtein distance
2008-11-27Merge branch 'cr/remote-update-v'Libravatar Junio C Hamano1-2/+6
* cr/remote-update-v: git-remote: add verbose mode to git remote update
2008-11-27Merge branch 'rs/strbuf-expand'Libravatar Junio C Hamano9-204/+87
* rs/strbuf-expand: remove the unused files interpolate.c and interpolate.h daemon: deglobalize variable 'directory' daemon: inline fill_in_extra_table_entries() daemon: use strbuf_expand() instead of interpolate() merge-recursive: use strbuf_expand() instead of interpolate() add strbuf_expand_dict_cb(), a helper for simple cases
2008-11-27Merge branch 'mv/clone-strbuf'Libravatar Junio C Hamano1-50/+59
* mv/clone-strbuf: builtin_clone: use strbuf in cmd_clone() builtin-clone: use strbuf in clone_local() and copy_or_link_directory() builtin-clone: use strbuf in guess_dir_name()
2008-11-27Merge branch 'lt/preload-lstat'Libravatar Junio C Hamano9-10/+122
* lt/preload-lstat: Fix index preloading for racy dirty case Add cache preload facility
2008-11-27Merge branch 'ta/quiet-pull'Libravatar Junio C Hamano7-20/+126
* ta/quiet-pull: Retain multiple -q/-v occurrences in git pull Teach/Fix pull/fetch -q/-v options
2008-11-27Merge branch 'ph/send-email'Libravatar Junio C Hamano3-75/+207
* ph/send-email: git send-email: ask less questions when --compose is used. git send-email: add --annotate option git send-email: interpret unknown files as revision lists git send-email: make the message file name more specific.
2008-11-27Merge branch 'maint'Libravatar Junio C Hamano6-39/+22
* maint: sha1_file.c: resolve confusion EACCES vs EPERM sha1_file: avoid bogus "file exists" error message git checkout: don't warn about unborn branch if -f is already passed bash: offer refs instead of filenames for 'git revert' bash: remove dashed command leftovers git-p4: fix keyword-expansion regex fast-export: use an unsorted string list for extra_refs Add new testcase to show fast-export does not always exports all tags
2008-11-27Merge branch 'mv/fast-export' into maintLibravatar Junio C Hamano2-2/+10
* mv/fast-export: fast-export: use an unsorted string list for extra_refs Add new testcase to show fast-export does not always exports all tags
2008-11-27sha1_file.c: resolve confusion EACCES vs EPERMLibravatar Sam Vilain1-1/+1
An earlier commit 916d081 (Nicer error messages in case saving an object to db goes wrong, 2006-11-09) confused EACCES with EPERM, the latter of which is an unlikely error from mkstemp(). Signed-off-by: Sam Vilain <sam@vilain.net>
2008-11-27sha1_file: avoid bogus "file exists" error messageLibravatar Joey Hess1-1/+1
This avoids the following misleading error message: error: unable to create temporary sha1 filename ./objects/15: File exists mkstemp can fail for many reasons, one of which, ENOENT, can occur if the directory for the temp file doesn't exist. create_tmpfile tried to handle this case by always trying to mkdir the directory, even if it already existed. This caused errno to be clobbered, so one cannot tell why mkstemp really failed, and it truncated the buffer to just the directory name, resulting in the strange error message shown above. Note that in both occasions that I've seen this failure, it has not been due to a missing directory, or bad permissions, but some other, unknown mkstemp failure mode that did not occur when I ran git again. This code could perhaps be made more robust by retrying mkstemp, in case it was a transient failure. Signed-off-by: Joey Hess <joey@kitenet.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27git checkout: don't warn about unborn branch if -f is already passedLibravatar Matt McCutchen1-1/+1
I think it's unnecessary to warn that the checkout has been forced due to an unborn current branch if -f has been explicitly passed. For one project, I am using git-new-workdir to create workdirs from a bare repository whose HEAD is set to an unborn branch, and this warning started to irritate me. Signed-off-by: Matt McCutchen <matt@mattmccutchen.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27bash: offer refs instead of filenames for 'git revert'Libravatar SZEDER Gábor1-1/+1
The completion script for 'git revert' currently offers options and filenames. However, 'git revert' doesn't take any filenames from the command line, but a single commit. Therefore, it's more sane to offer refs instead. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27bash: complete full refsLibravatar SZEDER Gábor1-4/+15
Sometimes it's handy to complete full refs, e.g. the user has some refs outside of refs/{heads,remotes,tags} or the user wants to complete some git command's special refs (like 'git show refs/bisect/bad'). To do that, we check whether the ref to be completed starts with 'refs/' or is 'refs' (to reduce the risk of matching 'refs-'). If it does, then we offer full refs for completion; otherwise everything works as usual. This way the impact on the common case is fairly small (hopefully not many users have branches or tags starting with 'refs'), and in the special case the cost of typing out 'refs' is bearable. While at it, also remove the unused 'cmd' variable from '__git_refs'. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27bash: remove dashed command leftoversLibravatar SZEDER Gábor1-33/+8
Commit 5a625b07 (bash: remove fetch, push, pull dashed form leftovers, 2008-10-03) did that already, but there were still some git-cmd left here and there. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27Merge branch 'pw/maint-p4' into maintLibravatar Junio C Hamano1-1/+1
* pw/maint-p4: git-p4: fix keyword-expansion regex
2008-11-27git-p4: fix keyword-expansion regexLibravatar Pete Wyckoff1-1/+1
This text: my $dir = $File::Find::dir; return if ($dir !~ m,$options->{dirpat}$,); was improperly converted to: my $dir = $File$dir !~ m,$options->{dirpat}$,); by the keyword identifier expansion code. Add a \n to make sure the regex doesn't go across end-of-line boundaries. Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27Fix typos in the documentation.Libravatar Ralf Wildenhues3-5/+5
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-27Merge branch 'rw/maint-typofix' into rw/typofixLibravatar Junio C Hamano4-4/+4
* rw/maint-typofix: Fix typos in the documentation.
2008-11-27Fix typos in the documentation.Libravatar Ralf Wildenhues4-4/+4
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-26Merge branch 'maint'Libravatar Junio C Hamano2-1/+25
* maint: Teach "git diff" to honour --[no-]ext-diff
2008-11-26Merge branch 'mm/sort-config-doc'Libravatar Junio C Hamano2-71/+71
* mm/sort-config-doc: config.txt: alphabetize configuration sections
2008-11-26Merge branch 'mm/maint-sort-config-doc' into maintLibravatar Junio C Hamano1-48/+48
* mm/maint-sort-config-doc: config.txt: alphabetize configuration sections
2008-11-26Merge branch 'mm/maint-sort-config-doc' into mm/sort-config-docLibravatar Junio C Hamano2-71/+71
* mm/maint-sort-config-doc: config.txt: alphabetize configuration sections Conflicts: Documentation/config.txt
2008-11-26config.txt: alphabetize configuration sectionsLibravatar Matt McCutchen1-48/+48
I figured the sections might as well be in some order, so I chose alphabetical but with "core" at the beginning. This should help people add new variables in the right places. Signed-off-by: Matt McCutchen <matt@mattmccutchen.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-26xdiff-interface.c: remove 10 duplicated linesLibravatar Jim Meyering1-11/+0
Remove an accidentally duplicated sequence of 10 lines. This happens to plug a leak, too. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-26t9129-git-svn-i18n-commitencoding: Make compare_svn_head_with() compatible ↵Libravatar Marcel Koeppen1-1/+1
with OSX sed The sed call used in compare_svn_head_with() uses the + quantifier, which is not supported in the OSX version of sed. It is replaced by the equivalent \{1,\}. Signed-off-by: Marcel Koeppen <git-dev@marzelpan.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-26Teach "git diff" to honour --[no-]ext-diffLibravatar Junio C Hamano2-1/+25
The original intention of 72909be (Add diff-option --ext-diff, 2007-06-30) was to optionally allow the use of external diff viewer in "git log" family (while keeping them disabled by default). It exposed the "allow external diff" bit to the UI, but forgot to adjust the "git diff" codepath that was set up to always allow use of the external diff viewer. Noticed by Nazri Ramliy; tests by René Scharfe squashed in. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-26send-email: Fix Pine address book parsingLibravatar Trent Piepho1-3/+6
See: http://www.washington.edu/pine/tech-notes/low-level.html Entries with a fcc or comment field after the address weren't parsed correctly. Continuation lines, identified by leading spaces, were also not handled. Distribution lists which had ( ) around a list of addresses did not have the parenthesis removed. Signed-off-by: Trent Piepho <tpiepho@freescale.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-25Merge branch 'for-junio' of git://source.winehq.org/~julliard/git/gitLibravatar Junio C Hamano1-160/+177
* 'for-junio' of git://source.winehq.org/~julliard/git/git: git.el: Allow to commit even if there are no marked files. git.el: Add possibility to mark files directly in git-update-status-files. git.el: Add an insert file command. git.el: Never clear the status buffer, only update the files. git.el: Fix git-amend-commit to support amending an initial commit. git.el: Properly handle merge commits in git-amend-commit. git.el: Simplify handling of merge heads in the commit log-edit buffer. git.el: Remove the env parameter in git-call-process and git-call-process-string. git.el: Improve error handling for commits.
2008-11-25bisect: teach "skip" to accept special arguments like "A..B"Libravatar Christian Couder1-1/+18
The current "git bisect skip" syntax is "git bisect skip [<rev>...]" so it's already possible to skip a range of revisions using something like: $ git bisect skip $(git rev-list A..B) where A and B are the bounds of the range we want to skip. This patch teaches "git bisect skip" to accept: $ git bisect skip A..B as an abbreviation for the former command. This is done by checking each argument to see if it contains two dots one after the other ('..'), and by expending it using "git rev-list" if that is the case. Note that this patch will not make "git bisect skip" accept all that "git rev-list" accepts, as things like "^A B" for exemple will not work. But things like "A B..C D E F.. ..G H...I" should work as expected. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-25builtin_clone: use strbuf in cmd_clone()Libravatar Miklos Vajna1-20/+25
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-25builtin-clone: use strbuf in clone_local() and copy_or_link_directory()Libravatar Miklos Vajna1-27/+31
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-25builtin-clone: use strbuf in guess_dir_name()Libravatar Miklos Vajna1-3/+3
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23Merge branch 'maint'Libravatar Junio C Hamano1-7/+6
* maint: Fix misleading wording for git-cherry-pick
2008-11-23remove the unused files interpolate.c and interpolate.hLibravatar René Scharfe3-130/+0
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23daemon: deglobalize variable 'directory'Libravatar René Scharfe1-10/+6
Remove the global variable 'directory' and pass it as a parameter of the two functions that use it instead, (almost) restoring their interface to how it was before 49ba83fb67d9e447b86953965ce5f949c6a93b81. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23daemon: inline fill_in_extra_table_entries()Libravatar René Scharfe1-8/+2
Having fill_in_extra_table_entries() as a separate function has no advantage -- a function with no parameters and return values might as well be an anonymous block of code. Its name still refers to the table of interpolate() which has been removed earlier, so it's better to inline it at its only call site. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23daemon: use strbuf_expand() instead of interpolate()Libravatar René Scharfe1-55/+54
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23merge-recursive: use strbuf_expand() instead of interpolate()Libravatar René Scharfe2-13/+9
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23add strbuf_expand_dict_cb(), a helper for simple casesLibravatar René Scharfe3-0/+28
The new callback function strbuf_expand_dict_cb() can be used together with strbuf_expand() if there is only a small number of placeholders for static replacement texts. It expects its dictionary as an array of placeholder+value pairs as context parameter, terminated by an entry with the placeholder member set to NULL. The new helper is intended to aid converting the remaining calls of interpolate(). strbuf_expand() is smaller, more flexible and can be used to go faster than interpolate(), so it should replace the latter. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23fast-export: use an unsorted string list for extra_refsLibravatar Johannes Schindelin2-3/+3
The list extra_refs contains tags and the objects referenced by them, so that they can be handled at the end. When a tag references a commit, that commit is added to the list using the same name. Also, the function handle_tags_and_duplicates() relies on the order the items were added to extra_refs, so clearly we do not want to use a sorted list here. Noticed by Miklos Vajna. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Tested-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23Add new testcase to show fast-export does not always exports all tagsLibravatar Miklos Vajna1-0/+8
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-11-23sha1_file: avoid bogus "file exists" error messageLibravatar Joey Hess1-1/+1
This avoids the following misleading error message: error: unable to create temporary sha1 filename ./objects/15: File exists mkstemp can fail for many reasons, one of which, ENOENT, can occur if the directory for the temp file doesn't exist. create_tmpfile tried to handle this case by always trying to mkdir the directory, even if it already existed. This caused errno to be clobbered, so one cannot tell why mkstemp really failed, and it truncated the buffer to just the directory name, resulting in the strange error message shown above. Note that in both occasions that I've seen this failure, it has not been due to a missing directory, or bad permissions, but some other, unknown mkstemp failure mode that did not occur when I ran git again. This code could perhaps be made more robust by retrying mkstemp, in case it was a transient failure. Signed-off-by: Joey Hess <joey@kitenet.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>