summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-08-05fast-export: quote paths in outputLibravatar Jeff King2-8/+51
Many pathnames in a fast-import stream need to be quoted. In particular: 1. Pathnames at the end of an "M" or "D" line need quoting if they contain a LF or start with double-quote. 2. Pathnames on a "C" or "R" line need quoting as above, but also if they contain spaces. For (1), we weren't quoting at all. For (2), we put double-quotes around the paths to handle spaces, but ignored the possibility that they would need further quoting. This patch checks whether each pathname needs c-style quoting, and uses it. This is slightly overkill for (1), which doesn't actually need to quote many characters that vanilla c-style quoting does. However, it shouldn't hurt, as any implementation needs to be ready to handle quoted strings anyway. In addition to adding a test, we have to tweak a test which blindly assumed that case (2) would always use double-quotes, whether it needed to or not. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-16Merge branch 'maint-1.7.2' into maint-1.7.3Libravatar Junio C Hamano3-20/+26
* maint-1.7.2: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command
2011-02-16Merge branch 'maint-1.7.1' into maint-1.7.2Libravatar Junio C Hamano3-20/+26
* maint-1.7.1: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command
2011-02-16Merge branch 'maint-1.7.0' into maint-1.7.1Libravatar Junio C Hamano3-20/+26
* maint-1.7.0: fast-import: introduce "feature notes" command fast-import: clarify documentation of "feature" command
2011-02-09fast-import: introduce "feature notes" commandLibravatar Jonathan Nieder3-0/+9
Here is a 'feature' command for streams to use to require support for the notemodify (N) command. When the 'feature' facility was introduced (v1.7.0-rc0~95^2~4, 2009-12-04), the notes import feature was old news (v1.6.6-rc0~21^2~8, 2009-10-09) and it was not obvious it deserved to be a named feature. But now that is clear, since all major non-git fast-import backends lack support for it. Details: on git version with this patch applied, any "feature notes" command in the features/options section at the beginning of a stream will be treated as a no-op. On fast-import implementations without the feature (and older git versions), the command instead errors out with a message like This version of fast-import does not support feature notes. So by declaring use of notes at the beginning of a stream, frontends can avoid wasting time and other resources when the backend does not support notes. (This would be especially important for backends that do not support rewinding history after a botched import.) Improved-by: Thomas Rast <trast@student.ethz.ch> Improved-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-09fast-import: clarify documentation of "feature" commandLibravatar Jonathan Nieder1-20/+17
The "feature" command allows streams to specify options for the import that must not be ignored. Logically, they are part of the stream, even though technically most supported features are synonyms to command-line options. Make this more obvious by being more explicit about how the analogy between most "feature" commands and command-line options works. Treat the feature (import-marks) that does not fit this analogy separately. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-27rebase -i: clarify in-editor documentation of "exec"Libravatar Jonathan Nieder1-1/+1
The hints in the current "instruction sheet" template look like so: # Rebase 3f14246..a1d7e01 onto 3f14246 # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. # This does not make it clear that the format of each line is <insn> <commit id> <explanatory text that will be printed> but the reader will probably infer that from the automatically generated pick examples above it. What about the "exec" instruction? By analogy, I might imagine that the format of that line is "exec <command> <explanatory text>", and the "x <cmd>" hint does not address that question (at first I read it as taking an argument <cmd> that is the name of a shell). Meanwhile, the mention of <cmd> makes the hints harder to scan as a table. So remove the <cmd> and add some words to remind the reader that "exec" runs a command named by the rest of the line. To make room, it is left to the manpage to explain that that command is run using $SHELL and that nonzero status from that command will pause the rebase. Wording from Junio. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-27tests: sanitize more git environment variablesLibravatar Jeff King1-0/+3
These variables should generally not be set in one's environment, but they do get set by rebase, which means doing an interactive rebase like: pick abcd1234 foo exec make test will cause false negatives in the test suite. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-27Merge branch 'jn/fast-import-empty-tree-removal' into maintLibravatar Junio C Hamano2-0/+48
* jn/fast-import-empty-tree-removal: fast-import: treat filemodify with empty tree as delete
2011-01-27fast-import: treat filemodify with empty tree as deleteLibravatar Jonathan Nieder2-0/+48
Normal git processes do not allow one to build a tree with an empty subtree entry without trying hard at it. This is in keeping with the general UI philosophy: git tracks content, not empty directories. v1.7.3-rc0~75^2 (2010-06-30) changed that by making it easy to include an empty subtree in fast-import's active commit: M 040000 4b825dc642cb6eb9a060e54bf8d69288fbee4904 subdir One can trigger this by reading an empty tree (for example, the tree corresponding to an empty root commit) and trying to move it to a subtree. It is better and more closely analogous to 'git read-tree --prefix' to treat such commands as requests to remove the subtree. Noticed-by: David Barr <david.barr@cordelta.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-26rebase: give a better error message for bogus branchLibravatar Jeff King1-0/+1
When you give a non-existent branch to git-rebase, it spits out the usage. This can be confusing, since you may understand the usage just fine, but simply have made a mistake in the branch name. Before: $ git rebase origin bogus Usage: git rebase ... After: $ git rebase origin bogus fatal: no such branch: bogus Usage: git rebase ... Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-26rebase: use explicit "--" with checkoutLibravatar Jeff King2-2/+2
In the case of a ref/pathname conflict, checkout will already do the right thing and checkout the ref. However, for a non-existant ref, this has two advantages: 1. If a file with that pathname exists, rebase will refresh the file from the index and then rebase the current branch instead of producing an error. 2. If no such file exists, the error message using an explicit "--" is better: # before $ git rebase -i origin bogus error: pathspec 'bogus' did not match any file(s) known to git. Could not checkout bogus # after $ git rebase -i origin bogus fatal: invalid reference: bogus Could not checkout bogus The problems seem to be trigger-able only through "git rebase -i", as regular git-rebase checks the validity of the branch parameter as a ref very early on. However, it doesn't hurt to be defensive. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-19exec_cmd: remove unused externLibravatar Erik Faye-Lund1-1/+0
This definition was added by commit 77cb17e9, but it's left unused since commit 511707d. Remove the left-over definition. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-19Merge branch 'jn/gitweb-no-logo' into maintLibravatar Junio C Hamano1-4/+9
* jn/gitweb-no-logo: gitweb: make logo optional
2011-01-19Merge branch 'jk/diff-driver-binary-doc' into maintLibravatar Junio C Hamano1-0/+33
* jk/diff-driver-binary-doc: docs: explain diff.*.binary option
2011-01-19Merge branch 'tr/submodule-relative-scp-url' into maintLibravatar Junio C Hamano2-2/+52
* tr/submodule-relative-scp-url: submodule: fix relative url parsing for scp-style origin
2011-01-19Merge branch 'rj/maint-difftool-cygwin-workaround' into maintLibravatar Junio C Hamano1-4/+8
* rj/maint-difftool-cygwin-workaround: difftool: Fix failure on Cygwin
2011-01-19Merge branch 'rj/maint-test-fixes' into maintLibravatar Junio C Hamano4-23/+35
* rj/maint-test-fixes: t9501-*.sh: Fix a test failure on Cygwin lib-git-svn.sh: Add check for mis-configured web server variables lib-git-svn.sh: Avoid setting web server variables unnecessarily t9142: Move call to start_httpd into the setup test t3600-rm.sh: Don't pass a non-existent prereq to test #15
2011-01-19Merge branch 'jn/maint-gitweb-pathinfo-fix' into maintLibravatar Junio C Hamano1-8/+23
* jn/maint-gitweb-pathinfo-fix: gitweb: Fix handling of whitespace in generated links
2011-01-19Merge branch 'ak/describe-exact' into maintLibravatar Junio C Hamano1-25/+60
* ak/describe-exact: describe: Delay looking up commits until searching for an inexact match describe: Store commit_names in a hash table by commit SHA1 describe: Do not use a flex array in struct commit_name describe: Use for_each_rawref
2011-01-19Merge branch 'jn/maint-fast-import-object-reuse' into maintLibravatar Junio C Hamano1-7/+2
* jn/maint-fast-import-object-reuse: fast-import: insert new object entries at start of hash bucket
2011-01-19Merge branch 'jn/submodule-b-current' into maintLibravatar Junio C Hamano2-20/+24
* jn/submodule-b-current: git submodule: Remove now obsolete tests before cloning a repo git submodule -b ... of current HEAD fails
2011-01-19Merge branch 'jc/maint-svn-info-test-fix' into maintLibravatar Junio C Hamano1-72/+34
* jc/maint-svn-info-test-fix: t9119: do not compare "Text Last Updated" line from "svn info"
2011-01-19Merge branch 'nd/maint-relative' into maintLibravatar Junio C Hamano1-0/+6
* nd/maint-relative: get_cwd_relative(): do not misinterpret root path
2011-01-12commit: suggest --amend --reset-author to fix commiter identityLibravatar Matthieu Moy1-2/+2
Since the message advises to fix the configuration first, the advantage of using this command is that it is cut-and-paste ready, while using --author='...' requires the user to type his name and email again. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-10Merge branch 'maint-1.7.2' into maintLibravatar Junio C Hamano2-5/+1
* maint-1.7.2: Documentation/githooks: post-rewrite-copy-notes never existed Documentation/git-archive: spell --worktree-attributes correctly
2011-01-10Merge branch 'maint-1.7.1' into maint-1.7.2Libravatar Junio C Hamano2-5/+1
* maint-1.7.1: Documentation/githooks: post-rewrite-copy-notes never existed Documentation/git-archive: spell --worktree-attributes correctly
2011-01-10Merge branch 'maint-1.7.0' into maint-1.7.1Libravatar Junio C Hamano1-1/+1
* maint-1.7.0: Documentation/git-archive: spell --worktree-attributes correctly
2011-01-10docs: explain diff.*.binary optionLibravatar Jeff King1-0/+33
This was added long ago as part of the userdiff refactoring for textconv, as internally it made the code simpler and cleaner. However, there was never a concrete use case for actually using the config variable. Now that Matthieu Moy has provided such a use case, it's easy to explain it using his example. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-10submodule: fix relative url parsing for scp-style originLibravatar Thomas Rast2-2/+52
The function resolve_relative_url was not prepared to deal with an scp-style origin 'user@host:path' in the case where 'path' is only a single component. Fix this by extending the logic that strips one path component from the $remoteurl. Also add tests for both styles of URLs. Noticed-by: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com> Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-10Documentation/githooks: post-rewrite-copy-notes never existedLibravatar Thomas Rast1-4/+0
The documentation for the post-rewrite hook contains a paragraph from its early development, where the automatic notes copying facilities were not part of the series and thus this had to be a hook. Later versions of the series implemented notes copying as a core feature. Thus mentioning post-rewrite-copy-notes was never correct. As the other hooks do not have a "there is no default hook, but..." sentence unless they ship a sample hook in either templates or contrib, we simply remove the whole paragraph. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-10Documentation/git-archive: spell --worktree-attributes correctlyLibravatar Thomas Rast1-1/+1
The --worktree-attributes option was correctly documented in ba053ea (archive: do not read .gitattributes in working directory, 2009-04-18). However, later in 9b4c8b0 (archive documentation: attributes are taken from the tree by default, 2010-02-10) the misspelling "--work-tree-attributes" was used to refer to it. Fix this. Noticed-by: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com> Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-08Mark gitk script executableLibravatar Anders Kaseorg1-0/+0
The executable bit on gitk-git/gitk was lost (accidentally it seems) by commit 62ba5143ec2ab9d4083669b1b1679355e7639cd5. Put it back, so that gitk can be run directly from a git.git checkout. Note that the script is already executable in gitk.git, just not in git.git. Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-05Git 1.7.3.5Libravatar Junio C Hamano2-1/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-04gitweb: make logo optionalLibravatar Jonathan Nieder1-4/+9
Some sites may not want to have a logo at all. While at it, use $cgi->img to simplify this code. (CGI.pm learned most HTML4 tags by version 2.79, so this should be portable to perl 5.8, though I haven't tested.) Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-04gitweb: skip logo in atom feed when there is noneLibravatar Jonathan Nieder1-1/+1
With v1.5.0-rc0~169 (gitweb: Fix Atom feed <logo>: it is $logo, not $logo_url, 2006-12-04), the logo URI to be written to Atom feeds was corrected but the case of no logo forgotten. Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-29t9001: Fix test prerequisitesLibravatar Robin H. Johnson1-2/+2
Add in missing Perl prerequisites for new tests of send-email. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-28Prepare for 1.7.3.5Libravatar Junio C Hamano2-1/+33
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-28Merge branch 'jk/commit-die-on-bogus-ident' into maintLibravatar Junio C Hamano3-24/+40
* jk/commit-die-on-bogus-ident: commit: die before asking to edit the log message ident: die on bogus date format
2010-12-28Merge branch 'ks/blame-worktree-textconv-cached' into maintLibravatar Junio C Hamano2-2/+23
* ks/blame-worktree-textconv-cached: fill_textconv(): Don't get/put cache if sha1 is not valid t/t8006: Demonstrate blame is broken when cachetextconv is on
2010-12-28Merge branch 'jc/maint-rebase-rewrite-last-skip' into maintLibravatar Junio C Hamano2-8/+17
* jc/maint-rebase-rewrite-last-skip: rebase --skip: correctly wrap-up when skipping the last patch
2010-12-28Merge branch 'jc/maint-am-abort-safely' into maintLibravatar Junio C Hamano2-2/+34
* jc/maint-am-abort-safely: am --abort: keep unrelated commits since the last failure and warn
2010-12-28Merge branch 'kb/maint-status-cquote' into maintLibravatar Junio C Hamano1-0/+10
* kb/maint-status-cquote: status: Quote paths with spaces in short format
2010-12-28Fix false positives in t3404 due to SHELL=/bin/falseLibravatar Robin H. Johnson1-1/+2
If the user's shell in NSS passwd is /bin/false (eg as found during Gentoo's package building), the git-rebase exec tests will fail, because they call $SHELL around the command, and in the existing testcase, $SHELL was not being cleared sufficently. This lead to false positive failures of t3404 on systems where the package build user was locked down as noted above. Signed-off-by: "Robin H. Johnson" <robbat2@gentoo.org> X-Gentoo-Bug: 349083 X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=349083 Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-26Merge branch 'rs/maint-diff-fd-leak' into maintLibravatar Junio C Hamano1-1/+3
* rs/maint-diff-fd-leak: close file on error in read_mmfile()
2010-12-26close file on error in read_mmfile()Libravatar René Scharfe1-1/+3
Reported in http://qa.debian.org/daca/cppcheck/sid/git_1.7.2.3-2.2.html and in http://thread.gmane.org/gmane.comp.version-control.git/123042. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-22test-lib.sh/test_decode_color(): use octal not hex in awk scriptLibravatar Brandon Casey1-1/+1
POSIX awk seems to explicitly not support hexadecimal escape sequences. From http://pubs.opengroup.org/onlinepubs/009695399/: Regular expressions in awk have been extended somewhat... One sequence that is not supported is hexadecimal value escapes beginning with '\x'. This affects the awk on IRIX 6.5, and causes t4015.56 to fail. Use octal instead. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-22rebase --skip: correctly wrap-up when skipping the last patchLibravatar Junio C Hamano2-8/+17
When "rebase --skip" is used to skip the last patch in the series, the code to wrap up the rewrite by copying the notes from old to new commits and also by running the post-rewrite hook was bypassed. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-21t0050: fix printf format strings for portabilityLibravatar Jonathan Nieder1-2/+2
Unlike bash and ksh, dash passes through hexadecimal \xcc escapes. So when run with dash, these tests *pass* (since '\xcc' is a perfectly reasonable filename) but they are not testing what was intended. Use octal escapes instead, in the spirit of v1.6.1-rc1~55^2 (2008-11-09). Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-12-21t3419-*.sh: Fix arithmetic expansion syntax errorLibravatar Ramsay Jones1-2/+2
Some shells, for example dash versions older than 0.5.4, need to spell a variable reference as '$N' rather than 'N' in an arithmetic expansion. In order to avoid the syntax error, we change the offending variable reference from 'i' to '$i' in function scramble. There is nothing bash specific to this test script (and we shouldn't have any bash dependent test). Fix its shebang line. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>