git.git
12 years agogit p4 test: move client_view() function to library
Pete Wyckoff [Sat, 11 Aug 2012 16:55:00 +0000 (12:55 -0400)]
git p4 test: move client_view() function to library

This code will be useful in --detect-branches --use-client-spec tests.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit svn: reset invalidates the memoized mergeinfo caches
Peter Baumann [Thu, 9 Aug 2012 06:42:53 +0000 (08:42 +0200)]
git svn: reset invalidates the memoized mergeinfo caches

Since v1.7.0-rc2~11 (git-svn: persistent memoization, 2010-01-30),
git-svn has maintained some private per-repository caches in
.git/svn/.caches to avoid refetching and recalculating some
mergeinfo-related information with every 'git svn fetch'.

This memoization can cause problems, e.g consider the following case:

SVN repo:

  ... - a - b - c - m  <- trunk
          \        /
            d  -  e    <- branch1

The Git import of the above repo is at commit 'a' and doesn't know about
the branch1. In case of an 'git svn rebase', only the trunk of the
SVN repo is imported. During the creation of the git commit 'm', git svn
uses the svn:mergeinfo property and tries to find the corresponding git
commit 'e' to create 'm' with 'c' and 'e' as parents. But git svn rebase
only imports the current branch so commit 'e' is not imported.
Therefore git svn fails to create commit 'm' as a merge commit, because one
of its parents is not known to git. The imported history looks like this:

  ... - a - b - c - m  <- trunk

A later 'git svn fetch' to import all branches can't rewrite the commit 'm'
to add 'e' as a parent and to make it a real git merge commit, because it
was already imported.

That's why the imported history misses the merge and looks like this:

  ... - a - b - c - m  <- trunk
          \
            d  -  e    <- branch1

Right now the only known workaround for importing 'm' as a merge is to
force reimporting 'm' again from SVN, e.g. via

  $ git svn reset --revision $(git find-rev $c)
  $ git svn fetch

Sadly, this is where the behavior has regressed: git svn reset doesn't
invalidate the old mergeinfo cache, which is no longer valid for the
reimport, which leads to 'm' beeing imprted with only 'c' as parent.

As solution to this problem, this commit invalidates the mergeinfo cache
to force correct recalculation of the parents.

During development of this patch, several ways for invalidating the cache
where considered. One of them is to use Memoize::flush_cache, which will
call the CLEAR method on the underlying Memoize persistency implementation.
Sadly, neither Memoize::Storable nor the newer Memoize::YAML module
introduced in 68f532f4ba888 could optionally be used implement the
CLEAR method, so this is not an option.

Reseting the internal hash used to store the memoized values has the same
problem, because it calls the non-existing CLEAR method of the
underlying persistency layer, too.

Considering this and taking into account the different implementations
of the memoization modules, where Memoize::Storable is not in our control,
implementing the missing CLEAR method is not an option, at least not if
Memoize::Storable is still used.

Therefore the easiest solution to clear the cache is to delete the files
on disk in 'git svn reset'. Normally, deleting the files behind the back
of the memoization module would be problematic, because the in-memory
representation would still exist and contain wrong data. Fortunately, the
memoization is active in memory only for a small portion of the code.
Invalidating the cache by deleting the files on disk if it isn't active
should be safe.

Signed-off-by: Peter Baumann <waste.manager@gmx.de>
Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agogit svn: handle errors and concurrent commits in dcommit
Robert Luberda [Wed, 8 Aug 2012 05:35:00 +0000 (07:35 +0200)]
git svn: handle errors and concurrent commits in dcommit

dcommit didn't handle errors returned by SVN and coped very
poorly with concurrent commits that appear in SVN repository
while dcommit was running. In both cases it left git repository
in inconsistent state: index (which was reset with `git reset
--mixed' after a successful commit to SVN) no longer matched the
checkouted tree, when the following commit failed or needed to be
rebased. See http://bugs.debian.org/676904 for examples.

This patch fixes the issues by:
- introducing error handler for dcommit. The handler will try
  to rebase or reset working tree before returning error to the
  end user. dcommit_rebase function was extracted out of cmd_dcommit
  to ensure consistency between cmd_dcommit and the error handler.
- calling `git reset --mixed' only once after all patches are
  successfully committed to SVN. This ensures index is not touched
  for most of the time of dcommit run.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Thu, 9 Aug 2012 17:51:46 +0000 (10:51 -0700)]
Merge git://github.com/git-l10n/git-po

L10n updates for 1.7.12-rc2

* 'master' of git://github.com/git-l10n/git-po:
  l10n: Update Swedish translation (1168t0f0u)
  l10n: de.po: translate 77 new messages
  l10n: vi.po: update one message
  l10n: zh_CN.po: update one translation
  l10n: Update one message in git.pot

12 years agol10n: Update Swedish translation (1168t0f0u)
Peter Krefting [Thu, 9 Aug 2012 05:36:41 +0000 (06:36 +0100)]
l10n: Update Swedish translation (1168t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
12 years agoMerge branch 'bw/maint-1.7.9-solaris-getpass'
Junio C Hamano [Wed, 8 Aug 2012 22:14:57 +0000 (15:14 -0700)]
Merge branch 'bw/maint-1.7.9-solaris-getpass'

The recent update to terminal I/O interface to get passwords &c
interactively didn't quite work on Solaris.

* bw/maint-1.7.9-solaris-getpass:
  Enable HAVE_DEV_TTY for Solaris
  terminal: seek when switching between reading and writing

12 years agoDocumentation: list git-credential in plumbing commands
Matthieu Moy [Wed, 8 Aug 2012 07:58:27 +0000 (09:58 +0200)]
Documentation: list git-credential in plumbing commands

Commit e30b2feb1b (Jun 24 2012, add 'git credential' plumbing command)
forgot to add git-credential to command-list.txt, hence the command was
not appearing in the documentation, making it hard for users to discover
it.

While we're there, capitalize the description line for git-crendential
for consistency with other commands.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge git://github.com/ralfth/git-po-de
Jiang Xin [Tue, 7 Aug 2012 23:23:01 +0000 (07:23 +0800)]
Merge git://github.com/ralfth/git-po-de

* git://github.com/ralfth/git-po-de:
  l10n: de.po: translate 77 new messages

12 years agoGit 1.7.12-rc2 v1.7.12-rc2
Junio C Hamano [Tue, 7 Aug 2012 17:39:34 +0000 (10:39 -0700)]
Git 1.7.12-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: de.po: translate 77 new messages
Ralf Thielow [Thu, 2 Aug 2012 16:06:12 +0000 (18:06 +0200)]
l10n: de.po: translate 77 new messages

Translate 77 new messages came from git.pot update
in 3b6137f (l10n: Update git.pot (76 new, 4 removed
messages)) and bb2ba06 (l10n: Update one message in
git.pot).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
12 years agoEnable HAVE_DEV_TTY for Solaris
Ben Walton [Tue, 7 Aug 2012 03:07:42 +0000 (23:07 -0400)]
Enable HAVE_DEV_TTY for Solaris

Now that git_terminal_prompt can cleanly interact with /dev/tty on
Solaris, enable HAVE_DEV_TTY so that this code path is used for
credential reading instead of relying on the crippled getpass().

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoterminal: seek when switching between reading and writing
Jeff King [Tue, 7 Aug 2012 04:10:26 +0000 (00:10 -0400)]
terminal: seek when switching between reading and writing

When a stdio stream is opened in update mode (e.g., "w+"),
the C standard forbids switching between reading or writing
without an intervening positioning function. Many
implementations are lenient about this, but Solaris libc
will flush the recently-read contents to the output buffer.
In this instance, that meant writing the non-echoed password
that the user just typed to the terminal.

Fix it by inserting a no-op fseek between the read and
write.

The opposite direction (writing followed by reading) is also
disallowed, but our intervening fflush is an acceptable
positioning function for that alternative.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: vi.po: update one message
Tran Ngoc Quan [Tue, 7 Aug 2012 00:18:01 +0000 (07:18 +0700)]
l10n: vi.po: update one message

* Translate message that updated from commit bb2ba06

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
12 years agoDrop 1.7.11.x items from 1.7.12 release notes
Junio C Hamano [Mon, 6 Aug 2012 22:58:38 +0000 (15:58 -0700)]
Drop 1.7.11.x items from 1.7.12 release notes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with maint
Junio C Hamano [Mon, 6 Aug 2012 22:53:33 +0000 (15:53 -0700)]
Sync with maint

12 years agoPrepare for 1.7.11.5
Junio C Hamano [Mon, 6 Aug 2012 22:51:58 +0000 (15:51 -0700)]
Prepare for 1.7.11.5

Hopefully that will be the final 1.7.11.x maintenance release.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jn/block-sha1' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:40:00 +0000 (15:40 -0700)]
Merge branch 'jn/block-sha1' into maint

* jn/block-sha1:
  Makefile: BLK_SHA1 does not require fast htonl() and unaligned loads
  block-sha1: put expanded macro parameters in parentheses
  block-sha1: avoid pointer conversion that violates alignment constraints

12 years agoMerge branch 'jn/make-assembly-in-right-directory' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:39:38 +0000 (15:39 -0700)]
Merge branch 'jn/make-assembly-in-right-directory' into maint

* jn/make-assembly-in-right-directory:
  Makefile: fix location of listing produced by "make subdir/foo.s"

12 years agoMerge branch 'ms/daemon-doc-typo' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:39:16 +0000 (15:39 -0700)]
Merge branch 'ms/daemon-doc-typo' into maint

* ms/daemon-doc-typo:
  Documentation/git-daemon: add missing word

12 years agoMerge branch 'lm/git-blame-el' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:37:54 +0000 (15:37 -0700)]
Merge branch 'lm/git-blame-el' into maint

* lm/git-blame-el:
  git-blame.el: Do not use bare 0 to mean (point-min)
  git-blame.el: Use with-current-buffer where appropriate
  git-blame.el: Do not use goto-line in lisp code

12 years agoMerge branch 'rs/ipv6-ssh-url' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:37:43 +0000 (15:37 -0700)]
Merge branch 'rs/ipv6-ssh-url' into maint

* rs/ipv6-ssh-url:
  git: Wrong parsing of ssh urls with IPv6 literals ignores port

12 years agoMerge branch 'rs/git-blame-mapcar-mapc' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:37:28 +0000 (15:37 -0700)]
Merge branch 'rs/git-blame-mapcar-mapc' into maint

* rs/git-blame-mapcar-mapc:
  git-blame.el: use mapc instead of mapcar

12 years agoMerge branch 'rr/doc-commit' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:37:09 +0000 (15:37 -0700)]
Merge branch 'rr/doc-commit' into maint

* rr/doc-commit:
  commit: document a couple of options

12 years agodoc: A few minor copy edits.
Štěpán Němec [Sat, 14 Jul 2012 22:20:36 +0000 (00:20 +0200)]
doc: A few minor copy edits.

- (glossary) the quotes around the Wikipedia URL prevented its
  linkification in frontends that support it; remove them

- (manual) newer version (SHA-1) == following, older == preceding, not
  the other way around

- trivial typo and wording fixes

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/maint-checkout-orphan-check-fix' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:31:16 +0000 (15:31 -0700)]
Merge branch 'jk/maint-checkout-orphan-check-fix' into maint

* jk/maint-checkout-orphan-check-fix:
  checkout: don't confuse ref and object flags

12 years agoMerge branch 'mh/maint-revisions-doc' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:30:57 +0000 (15:30 -0700)]
Merge branch 'mh/maint-revisions-doc' into maint

* mh/maint-revisions-doc:
  Enumerate revision range specifiers in the documentation
  Make <refname> documentation more consistent.

12 years agoMerge branch 'jc/mergetool-tool-help' into maint
Junio C Hamano [Mon, 6 Aug 2012 22:30:18 +0000 (15:30 -0700)]
Merge branch 'jc/mergetool-tool-help' into maint

* jc/mergetool-tool-help:
  mergetool: support --tool-help option like difftool does

12 years agoMakefile: use overridable $(FIND) instead of hard-coded 'find'
Johannes Sixt [Mon, 6 Aug 2012 21:06:14 +0000 (23:06 +0200)]
Makefile: use overridable $(FIND) instead of hard-coded 'find'

The Makefile already offers the variable $(FIND) and uses it except in one
place. Fix it.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: zh_CN.po: update one translation
Jiang Xin [Mon, 6 Aug 2012 17:10:34 +0000 (01:10 +0800)]
l10n: zh_CN.po: update one translation

Translate 1 new messages came from git.pot update in bb2ba06
(l10n: Update one message in git.pot)

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agol10n: Update one message in git.pot
Jiang Xin [Mon, 6 Aug 2012 15:48:08 +0000 (23:48 +0800)]
l10n: Update one message in git.pot

This update comes from commit v1.7.12-rc1-18-ge0453
(merge-recursive: separate message for common ancestors).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 6 Aug 2012 03:51:05 +0000 (20:51 -0700)]
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: zh_CN.po: translate 76 new messages
  l10n: vi.po update to follow POT in 3b613
  l10n: Update git.pot (76 new, 4 removed messages)

12 years agomerge-recursive: separate message for common ancestors
Ralf Thielow [Sun, 5 Aug 2012 17:56:38 +0000 (19:56 +0200)]
merge-recursive: separate message for common ancestors

The function "merge_recursive" prints the count of common ancestors
as "found %u common ancestor(s):".  We should use a singular and a
plural form of this message to help translators.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: zh_CN.po: translate 76 new messages
Jiang Xin [Thu, 2 Aug 2012 03:50:59 +0000 (11:50 +0800)]
l10n: zh_CN.po: translate 76 new messages

Translate 76 new messages came from git.pot update in 3b6137f
(l10n: Update git.pot (76 new, 4 removed messages))

Thynson reviewed this update and also contributed other improvements:

 * blob -> 二进制对象(blob)
 * 共用 -> 同时使用

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Thynson <lanxingcan@gmail.com>
12 years agogit-remote-mediawiki: replace TODO-list in comment by appropriate link
Matthieu Moy [Fri, 3 Aug 2012 08:40:23 +0000 (10:40 +0200)]
git-remote-mediawiki: replace TODO-list in comment by appropriate link

My account on Github is now used as wiki and issue tracking. This will be
more flexible than in-tree management of a TODO-list.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: vi.po update to follow POT in 3b613
Tran Ngoc Quan [Fri, 3 Aug 2012 07:15:23 +0000 (14:15 +0700)]
l10n: vi.po update to follow POT in 3b613

* Translated 76 new messages

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
12 years agol10n: Update git.pot (76 new, 4 removed messages)
Jiang Xin [Thu, 2 Aug 2012 01:35:23 +0000 (09:35 +0800)]
l10n: Update git.pot (76 new, 4 removed messages)

Generate po/git.pot from v1.7.12-rc1-16-g05a20, and there are 76 new,
4 removed l10n messages.

 * 76 new messages are added at lines:

   230, 337-580, 4972, 4984, 4998, 5017, 5280-5378, 5654

 * 4 old messages are deleted from the previous version at lines:

   230, 4729, 4764, 5295

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Wed, 1 Aug 2012 22:59:08 +0000 (15:59 -0700)]
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: de.po: translate 4 new messages
  l10n: vi.po: translate 4 new messages
  l10n: zh_CN.po: translate 4 new messages
  l10n: Update git.pot (4 new, 3 removed messages)

12 years agogit-rebase.sh: fix typo in an error message
Ralf Thielow [Wed, 1 Aug 2012 17:09:09 +0000 (19:09 +0200)]
git-rebase.sh: fix typo in an error message

Fix a typo in the error messages which is shown if it seems that a
rebase is already in progress.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'nd/maint-i18n-diffstat'
Junio C Hamano [Tue, 31 Jul 2012 16:43:07 +0000 (09:43 -0700)]
Merge branch 'nd/maint-i18n-diffstat'

* nd/maint-i18n-diffstat:
  i18n: leave \n out of translated diffstat

12 years agoMerge branch 'jx/i18n-1.7.11'
Junio C Hamano [Tue, 31 Jul 2012 16:41:51 +0000 (09:41 -0700)]
Merge branch 'jx/i18n-1.7.11'

Add i18n support for scripted Porcelains, and mark strings in
merge(-recursive), am, and rebase for i18n.

* jx/i18n-1.7.11:
  i18n: merge-recursive: mark strings for translation
  Remove dead code which contains bad gettext block
  i18n: am: mark more strings for translation
  rebase: remove obsolete and unused LONG_USAGE which breaks xgettext
  i18n: Rewrite gettext messages start with dash
  i18n: rebase: mark messages for translation
  i18n: New keywords for xgettext extraction from sh

12 years agol10n: de.po: translate 4 new messages
Ralf Thielow [Mon, 30 Jul 2012 15:50:53 +0000 (17:50 +0200)]
l10n: de.po: translate 4 new messages

Translate 4 new messages came from git.pot update in 0bbe5b4
(l10n: Update git.pot (4 new, 3 removed messages)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
12 years agol10n: vi.po: translate 4 new messages
Tran Ngoc Quan [Tue, 31 Jul 2012 00:45:53 +0000 (07:45 +0700)]
l10n: vi.po: translate 4 new messages

Update Vietnamse translation to POT file in 0bbe5b4

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
12 years agol10n: zh_CN.po: translate 4 new messages
Jiang Xin [Mon, 30 Jul 2012 22:45:33 +0000 (06:45 +0800)]
l10n: zh_CN.po: translate 4 new messages

Translate 4 new messages came from git.pot update in 0bbe5b4
(l10n: Update git.pot (4 new, 3 removed messages))

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agoGit 1.7.12-rc1 v1.7.12-rc1
Junio C Hamano [Mon, 30 Jul 2012 20:00:03 +0000 (13:00 -0700)]
Git 1.7.12-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.11.4
Junio C Hamano [Mon, 30 Jul 2012 20:17:31 +0000 (13:17 -0700)]
Sync with 1.7.11.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoGit 1.7.11.4 v1.7.11.4
Junio C Hamano [Mon, 30 Jul 2012 20:09:25 +0000 (13:09 -0700)]
Git 1.7.11.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jk/maint-commit-document-editmsg' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:05:36 +0000 (13:05 -0700)]
Merge branch 'jk/maint-commit-document-editmsg' into maint

"$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
message user edits was not documented.

* jk/maint-commit-document-editmsg:
  commit: document the temporary commit message file

12 years agoMerge branch 'jk/maint-advise-vaddf' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:05:25 +0000 (13:05 -0700)]
Merge branch 'jk/maint-advise-vaddf' into maint

The advise() function did not use varargs correctly to format
its message.

* jk/maint-advise-vaddf:
  advice: pass varargs to strbuf_vaddf, not strbuf_addf

12 years agoMerge branch 'kk/maint-commit-tree' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:05:13 +0000 (13:05 -0700)]
Merge branch 'kk/maint-commit-tree' into maint

"git commit-tree" learned a more natural "-p <parent> <tree>" order
of arguments long time ago, but recently forgot it by mistake.

* kk/maint-commit-tree:
  Revert "git-commit-tree(1): update synopsis"
  commit-tree: resurrect command line parsing updates

12 years agoMerge branch 'jv/maint-no-ext-diff' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:04:59 +0000 (13:04 -0700)]
Merge branch 'jv/maint-no-ext-diff' into maint

"git diff --no-ext-diff" did not output anything for a typechange
filepair when GIT_EXTERNAL_DIFF is in effect.

* jv/maint-no-ext-diff:
  diff: test precedence of external diff drivers
  diff: correctly disable external_diff with --no-ext-diff

12 years agoMerge branch 'pg/maint-1.7.9-am-where-is-patch' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:04:39 +0000 (13:04 -0700)]
Merge branch 'pg/maint-1.7.9-am-where-is-patch' into maint

When "git am" failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.

* pg/maint-1.7.9-am-where-is-patch:
  am: indicate where a failed patch is to be found

12 years agoMerge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:04:18 +0000 (13:04 -0700)]
Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' into maint

When "git submodule add" clones a submodule repository, it can get
confused where to store the resulting submodule repository in the
superproject's .git/ directory when there is a symbolic link in the
path to the current directory.

* jl/maint-1.7.10-recurse-submodules-with-symlink:
  submodules: don't stumble over symbolic links when cloning recursively

12 years agoMerge branch 'jc/maint-filter-branch-epoch-date' into maint
Junio C Hamano [Mon, 30 Jul 2012 20:03:40 +0000 (13:03 -0700)]
Merge branch 'jc/maint-filter-branch-epoch-date' into maint

In 1.7.9 era, we taught "git rebase" about the raw timestamp format
but we did not teach the same trick to "filter-branch", which rolled
a similar logic on its own.

* jc/maint-filter-branch-epoch-date:
  t7003: add test to filter a branch with a commit at epoch
  date.c: Fix off by one error in object-header date parsing
  filter-branch: do not forget the '@' prefix to force git-timestamp

12 years agoMerge branch 'rj/maint-grep-remove-redundant-test'
Junio C Hamano [Mon, 30 Jul 2012 19:56:42 +0000 (12:56 -0700)]
Merge branch 'rj/maint-grep-remove-redundant-test'

"git grep" stopped spawning an external "grep" long time ago, but a
duplicated test to check internal and external "grep" was left
behind.

* rj/maint-grep-remove-redundant-test:
  t7810-*.sh: Remove redundant test

12 years agoMerge branch 'dg/submodule-in-dismembered-working-tree'
Junio C Hamano [Mon, 30 Jul 2012 19:56:25 +0000 (12:56 -0700)]
Merge branch 'dg/submodule-in-dismembered-working-tree'

Finishing touches to the new test script.

* dg/submodule-in-dismembered-working-tree:
  t7409: make sure submodule is initialized and updated in more detail

12 years agot7409: make sure submodule is initialized and updated in more detail
Daniel Graña [Mon, 30 Jul 2012 17:51:59 +0000 (14:51 -0300)]
t7409: make sure submodule is initialized and updated in more detail

The earlier test did not even make sure that the correct commit is
checked out in the submodule directory.  Inspect the result in a bit
more detail.

Signed-off-by: Daniel Graña <dangra@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'hv/link-alt-odb-entry'
Junio C Hamano [Mon, 30 Jul 2012 19:55:01 +0000 (12:55 -0700)]
Merge branch 'hv/link-alt-odb-entry'

The code to avoid mistaken attempt to add the object directory
itself as its own alternate could read beyond end of a string while
comparison.

* hv/link-alt-odb-entry:
  link_alt_odb_entry: fix read over array bounds reported by valgrind

12 years agoAdd explanatory comment for transport-helpers refs mapping.
Florian Achleitner [Mon, 30 Jul 2012 14:31:18 +0000 (16:31 +0200)]
Add explanatory comment for transport-helpers refs mapping.

The patch below adds a comment to fetch_with_import() explaining the
loop that saves the fetched commit names after 'git fast-import' has
done its work.  It avoids some confusion about which refs the
fast-import stream is supposed to use to write its result.

Signed-off-by: Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: Update git.pot (4 new, 3 removed messages)
Jiang Xin [Mon, 30 Jul 2012 02:24:47 +0000 (10:24 +0800)]
l10n: Update git.pot (4 new, 3 removed messages)

Generate po/git.pot from v1.7.12-rc0-54-g9e211, and there are 4 new,
3 removed l10n messages.

 * 4 new messages are added at lines:
   1254, 1264, 1459, 1523

 * 3 old messages are deleted from the previous version at lines:
   1254, 1273, 2854

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agot7810-*.sh: Remove redundant test
Ramsay Jones [Sat, 28 Jul 2012 18:50:49 +0000 (19:50 +0100)]
t7810-*.sh: Remove redundant test

Since commit bbc09c22 ("grep: rip out support for external grep",
12-01-2010), test number 60 ("grep -C1 hunk mark between files") is
essentially the same as test number 59.

Test 59 was intended to verify the behaviour of git-grep resulting
from multiple invocations of an external grep. As part of the test,
it creates and adds 1024 files to the index, which is now wasted
effort.

Remove test 59, since it is now redundant.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot1100-*.sh: Fix an intermittent test failure
Ramsay Jones [Sat, 28 Jul 2012 18:48:06 +0000 (19:48 +0100)]
t1100-*.sh: Fix an intermittent test failure

In particular, the final test ('flags and then non flags') fails
intermittently, depending on how much time elapsed between the
invocations of "git commit-tree" when creating the commits which
later have their commit id's compared. For example, if the commits
for childid-3 and childid-4 are created 1 or more seconds apart,
then the commits, which would otherwise be identical, will have
different commit id's.

In order to make the test reproducible, we remove the variability
by setting the author and committer times to a well defined state.
We accomplish this with a single call to 'test_tick' at the start
of the test.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agolink_alt_odb_entry: fix read over array bounds reported by valgrind
Heiko Voigt [Sat, 28 Jul 2012 15:46:36 +0000 (17:46 +0200)]
link_alt_odb_entry: fix read over array bounds reported by valgrind

pfxlen can be longer than the path in objdir when relative_base
contains the path to gits object directory.  Here we are interested
in checking if ent->base[] (the part that corresponds to .git/objects)
is the same string as objdir, and the code NUL-terminated ent->base[]
to

LEADING PATH\0XX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\0

in preparation for these "duplicate check" step (before we return
from the function, the first NUL is turned into '/' so that we can
fill XX when probing for loose objects).  All we need to do is to
compare the string with the path to our object directory.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot: add missing executable bit to t7409
Jeff King [Sat, 28 Jul 2012 15:18:29 +0000 (11:18 -0400)]
t: add missing executable bit to t7409

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoUpdate draft release notes to 1.7.12
Junio C Hamano [Sat, 28 Jul 2012 05:25:19 +0000 (22:25 -0700)]
Update draft release notes to 1.7.12

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'extract-remaining' of git://git.bogomips.org/git-svn
Junio C Hamano [Sat, 28 Jul 2012 04:48:27 +0000 (21:48 -0700)]
Merge branch 'extract-remaining' of git://git.bogomips.org/git-svn

* 'extract-remaining' of git://git.bogomips.org/git-svn:
  Extract Git::SVN::GlobSpec from git-svn.
  Move Git::IndexInfo into its own file.
  Load all the modules in one place and before running code.
  Extract Git::SVN::Migration from git-svn.
  Prepare Git::SVN::Migration for extraction from git-svn.
  Extract Git::SVN::Log from git-svn.
  Prepare Git::SVN::Log for extraction from git-svn.

12 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Sat, 28 Jul 2012 04:18:09 +0000 (21:18 -0700)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  Move initialization of Git::SVN variables into Git::SVN.
  Extract Git::SVN from git-svn into its own .pm file.
  Prepare Git::SVN for extraction into its own file.
  Extract some utilities from git-svn to allow extracting Git::SVN.
  perl: detect new files in MakeMaker builds
  The Makefile.PL will now find .pm files itself.
  Don't lose Error.pm if $@ gets clobbered.
  Quiet warning if Makefile.PL is run with -w and no --localedir

12 years agoMerge branch 'jk/autoident-test'
Junio C Hamano [Sat, 28 Jul 2012 04:17:00 +0000 (21:17 -0700)]
Merge branch 'jk/autoident-test'

Fix test breakages by a builder who does not have a valid user name
in his /etc/password entry.

* jk/autoident-test:
  t7502: test early quit from commit with bad ident
  t7502: handle systems where auto-identity is broken
  t7502: drop confusing test_might_fail call
  t7502: narrow checks for author/committer name in template
  t7502: properly quote GIT_EDITOR
  t7502: clean up fake_editor tests

12 years agoMerge branch 'jk/help-plug-memleak'
Junio C Hamano [Sat, 28 Jul 2012 04:16:45 +0000 (21:16 -0700)]
Merge branch 'jk/help-plug-memleak'

Plug a few trivial memory leaks.

* jk/help-plug-memleak:
  help.c::exclude_cmds(): plug a leak
  help.c::uniq: plug a leak

12 years agoMerge branch 'dg/submodule-in-dismembered-working-tree'
Junio C Hamano [Sat, 28 Jul 2012 04:13:46 +0000 (21:13 -0700)]
Merge branch 'dg/submodule-in-dismembered-working-tree'

In a superproject that has repository outside of its working tree,
"git submodule add" failed to clone a new submodule, as GIT_DIR and
GIT_WORK_TREE environment variables necessary to work in such a
superproject interfered with access to the submodule repository.

* dg/submodule-in-dismembered-working-tree:
  git-submodule: work with GIT_DIR/GIT_WORK_TREE

12 years agoMerge branch 'jk/maint-checkout-orphan-check-fix'
Junio C Hamano [Sat, 28 Jul 2012 04:11:33 +0000 (21:11 -0700)]
Merge branch 'jk/maint-checkout-orphan-check-fix'

"git checkout <branchname>" to come back from a detached HEAD state
incorrectly computed reachability of the detached HEAD, resulting in
unnecessary warnings.

* jk/maint-checkout-orphan-check-fix:
  checkout: don't confuse ref and object flags

12 years agoExtract Git::SVN::GlobSpec from git-svn.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:06 +0000 (17:26 -0700)]
Extract Git::SVN::GlobSpec from git-svn.

Straight cut & paste.  That's the last class.

* Make Git::SVN load it on its own, its the only thing that needs it.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoMove Git::IndexInfo into its own file.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:05 +0000 (17:26 -0700)]
Move Git::IndexInfo into its own file.

Straight cut & paste.  Didn't require any fixing.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoLoad all the modules in one place and before running code.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:04 +0000 (17:26 -0700)]
Load all the modules in one place and before running code.

Just makes the code easier to follow.  No functional change.

Also eliminate an unused lexical $SVN.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoExtract Git::SVN::Migration from git-svn.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:03 +0000 (17:26 -0700)]
Extract Git::SVN::Migration from git-svn.

Straight cut & paste.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoPrepare Git::SVN::Migration for extraction from git-svn.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:02 +0000 (17:26 -0700)]
Prepare Git::SVN::Migration for extraction from git-svn.

* Load Git command functions on its own.
* Load Git::SVN modules on its own.

Drive by refactorings...
* Use our() instead of use vars.
* Eliminate the auto loading of Git functions.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoExtract Git::SVN::Log from git-svn.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:01 +0000 (17:26 -0700)]
Extract Git::SVN::Log from git-svn.

Straight cut & paste.

Also noticed Git::SVN::Ra wasn't in the compile test.  It is now.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoPrepare Git::SVN::Log for extraction from git-svn.
Michael G. Schwern [Fri, 27 Jul 2012 00:26:00 +0000 (17:26 -0700)]
Prepare Git::SVN::Log for extraction from git-svn.

* Load Git command functions itself.

* Can't access the git-svn switch lexical any more, but its only used by
  Git::SVN::Log so turn it into a Git::SVN::Log global.

* Load Git::SVN as needed.  No need to load it always, its only used twice.

* Moved a state variable to the routine it's used for. (Drive by refactoring)

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoMove initialization of Git::SVN variables into Git::SVN.
Michael G. Schwern [Thu, 26 Jul 2012 23:22:25 +0000 (16:22 -0700)]
Move initialization of Git::SVN variables into Git::SVN.

Also it can compile on its own now, yay!

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoExtract Git::SVN from git-svn into its own .pm file.
Michael G. Schwern [Thu, 26 Jul 2012 23:22:24 +0000 (16:22 -0700)]
Extract Git::SVN from git-svn into its own .pm file.

Except for adding the 1; at the end, this is a straight copy & paste.

Tests still pass, but its doubtful Git::SVN will compile on its own
without git-svn being loaded.  Next commit will fix that.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoPrepare Git::SVN for extraction into its own file.
Michael G. Schwern [Thu, 26 Jul 2012 23:22:23 +0000 (16:22 -0700)]
Prepare Git::SVN for extraction into its own file.

This means it should be able to load without git-svn being loaded.

* Load Git.pm on its own and all the needed command functions.

* It needs to grab at a git-svn lexical $_prefix representing the --prefix
  option.  Provide opt_prefix() for that.  This is a refactoring artifact.
  The prefix should really be passed into Git::SVN->new.

* Unqualify unnecessarily fully qualified globals like
  $Git::SVN::default_repo_id.

* Lexically isolate the class just to make sure nothing is leaking out.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoExtract some utilities from git-svn to allow extracting Git::SVN.
Michael G. Schwern [Thu, 26 Jul 2012 23:22:22 +0000 (16:22 -0700)]
Extract some utilities from git-svn to allow extracting Git::SVN.

Put them in a new module called Git::SVN::Utils.  Yeah, not terribly
original and it will be a dumping ground.  But its better than having
them in the main git-svn program.  At least they can be documented
and tested.

* fatal() is used by many classes.
* Change the $can_compress lexical into a function.

This should be enough to extract Git::SVN.

Signed-off-by: Michael G. Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoperl: detect new files in MakeMaker builds
Junio C Hamano [Fri, 27 Jul 2012 20:04:20 +0000 (20:04 +0000)]
perl: detect new files in MakeMaker builds

While Makefile.PL now finds .pm files on its own, it does not
detect new files after it generates perl/perl.mak.

[ew: commit message, minor tweaks]

ref: http://mid.gmane.org/7vlii51xz4.fsf@alter.siamese.dyndns.org

Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoThe Makefile.PL will now find .pm files itself.
Michael G. Schwern [Wed, 25 Jul 2012 03:21:11 +0000 (20:21 -0700)]
The Makefile.PL will now find .pm files itself.

It is no longer necessary to manually add new .pm files to the
Makefile.PL.  This makes it easier to add modules.

It is still necessary to add them to the Makefile, but that extra work
should be removed at a future date.

Signed-off-by: Michael G Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoDon't lose Error.pm if $@ gets clobbered.
Michael G. Schwern [Wed, 25 Jul 2012 03:21:10 +0000 (20:21 -0700)]
Don't lose Error.pm if $@ gets clobbered.

In older Perls, sometimes $@ can become unset between the eval and
checking $@.  Its safer to check the eval directly.

Signed-off-by: Michael G Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoQuiet warning if Makefile.PL is run with -w and no --localedir
Michael G. Schwern [Wed, 25 Jul 2012 03:21:09 +0000 (20:21 -0700)]
Quiet warning if Makefile.PL is run with -w and no --localedir

Usually it isn't, but its nice if it can be run with warnings on.

Signed-off-by: Michael G Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
12 years agoi18n: merge-recursive: mark strings for translation
Jiang Xin [Wed, 25 Jul 2012 14:53:13 +0000 (22:53 +0800)]
i18n: merge-recursive: mark strings for translation

Mark strings in merge-recursive for translation.

Some tests would start to fail with GETTEXT_POISON turned on after
this update.  Use test_i18ncmp and test_i18ngrep where appropriate
to mark strings that should only be checked in the C locale output
to avoid such issues.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoRemove dead code which contains bad gettext block
Jiang Xin [Wed, 25 Jul 2012 14:53:12 +0000 (22:53 +0800)]
Remove dead code which contains bad gettext block

Found this dead code when I examine gettext messages in shell scripts
start with dash ('-' or '--'). An error will be raised for this case,
like:

    $ gettext "-d option is no longer supported.  Do not use."
    gettext: missing arguments

Indead, this code has been left as dead for a long time, as Jonathan
points out:

    The git am -d/--dotest option has errored out with a message
    since e72c7406 (am: remove support for -d .dotest, 2008-03-04).
    The error message about lack of support was eliminated along
    with other cleanups (probably by mistake) a year later by
    removing the option from the option table in 98ef23b3 (git-am:
    minor cleanups, 2009-01-28).

    But the code to handle -d and --dotest stayed around even though
    ever since then it could not be tripped.  Remove this dead code.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoi18n: am: mark more strings for translation
Jiang Xin [Wed, 25 Jul 2012 14:53:11 +0000 (22:53 +0800)]
i18n: am: mark more strings for translation

Mark strings in 'git-am.sh' for translation. In the last chunk,
change '$1' to '-b/--binary', as it is not worth turning this
message to "The %s option has been..." and using printf on it.

Also reduce one indentation level for one gettextln clause introduced
in commit de88c1c.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agorebase: remove obsolete and unused LONG_USAGE which breaks xgettext
Jiang Xin [Wed, 25 Jul 2012 14:53:10 +0000 (22:53 +0800)]
rebase: remove obsolete and unused LONG_USAGE which breaks xgettext

Since there is a modern OPTIONS_SPEC variable in use in this script,
the obsolete USAGE and LONG_USAGE variables are no longer used.
Remove them.

In addition, the obsolete LONG_USAGE variable has the following
message in it:

    A'\''--B'\''--C'\''

And such complex LONG_USAGE message will break xgettext when
extracting l10n messages (but if single quotes are removed from the
message, xgettext works fine on 'git-rebase.sh').

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoi18n: Rewrite gettext messages start with dash
Jiang Xin [Wed, 25 Jul 2012 14:53:09 +0000 (22:53 +0800)]
i18n: Rewrite gettext messages start with dash

Gettext message in a shell script should not start with '-', one
workaround is adding '--' between gettext and the message, like:

    gettext -- "--exec option ..."

But due to a bug in the xgettext extraction, xgettext can not
extract the actual message for this case. Rewriting the message
is a simpler and better solution.

Reported-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7502: test early quit from commit with bad ident
Jeff King [Thu, 26 Jul 2012 20:32:50 +0000 (16:32 -0400)]
t7502: test early quit from commit with bad ident

In commit f20f387, "git commit" notices and dies much
earlier when we have a bogus commit identity. That commit
did not add a test because we cannot do so reliably (namely,
we can only trigger the behavior on a system where the
automatically generated identity is bogus). However, now
that we have a prerequisite check for this feature, we can
add a test that will at least run on systems that produce
such a bogus identity.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7502: handle systems where auto-identity is broken
Jeff King [Thu, 26 Jul 2012 20:32:31 +0000 (16:32 -0400)]
t7502: handle systems where auto-identity is broken

Test t7502.21 checks whether we write the committer name
into COMMIT_EDITMSG when it has been automatically
determined. However, not all systems can produce valid
automatic identities.

Prior to f20f387 (commit: check committer identity more
strictly), this test worked even when we did not have a
valid automatic identity, since it did not run the strict
test until after we had generated the template. That commit
tightened the check to fail early (since we would fail
later, anyway), meaning that systems without a valid GECOS
name or hostname would fail the test.

We cannot just work around this, because it depends on
configuration outside the control of the test script.
Therefore we introduce a new test_prerequisite to run this
test only on systems where automatic ident works at all.

As a result, we can drop the confusing test_must_fail bit
from the test. The intent was that by giving "git commit"
invalid input (namely, nothing to commit), that it would
stop at a predictable point, whether we had a valid identity
or not, from which we could view the contents of
COMMIT_EDITMSG. Since that assumption no longer holds, and
we can only run the test when we have a valid identity,
there is no reason not to let commit run to completion. That
lets us be more robust to other unforeseen failures.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7502: drop confusing test_might_fail call
Jeff King [Thu, 26 Jul 2012 20:31:15 +0000 (16:31 -0400)]
t7502: drop confusing test_might_fail call

In t7502.20, we run "git commit" and check that it warns us
that the author and committer identity are not the same
(this is always the case in the test environment, since we
set up the idents differently).

Instead of actually making a commit, we have a clean index,
so the "git commit" we run will fail. This is marked as
might_fail, which is not really correct; it will always fail
since there is nothing to commit.

However, the only reason not to do a complete commit would
be to see the intermediate state of the COMMIT_EDITMSG file
when the commit is not completed. We don't need to care
about this, though; even a complete commit will leave
COMMIT_EDITMSG for us to view.  By doing a real commit and
dropping the might_fail, we are more robust against other
unforeseen failures of "git commit" that might influence our
test result.

It might seem less robust to depend on the fact that "git
commit" leaves COMMIT_EDITMSG in place after a successful
commit. However, that brings this test in line with others
parts of the script, which make the same assumption.
Furthermore, if that ever does change, the right solution is
not to prevent commit from completing, but to set EDITOR to
a script that will record the contents we see. After all,
the point of these tests is to check what the user sees in
their EDITOR, so that would be the most direct test. For
now, though, we can continue to use the "shortcut" that
COMMIT_EDITMSG is left intact.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7502: narrow checks for author/committer name in template
Jeff King [Thu, 26 Jul 2012 20:30:29 +0000 (16:30 -0400)]
t7502: narrow checks for author/committer name in template

t7502.20 and t7502.21 check that the author and committer
name are mentioned in the commit message template under
certain circumstances. However, they end up checking a much
larger and unnecessary portion of the template. Let's narrow
their checks to the specific lines.

While we're at it, let's give these tests more descriptive
names, so their purposes are more obvious.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7502: properly quote GIT_EDITOR
Jeff King [Thu, 26 Jul 2012 20:28:00 +0000 (16:28 -0400)]
t7502: properly quote GIT_EDITOR

One of the tests tries to ensure that editor is not run due
to an early failure. However, it needs to quote the pathname
of the trash directory used in $GIT_EDITOR, since git will
pass it along to the shell. In other words, the test would
pass whether the code was correct or not, since the unquoted
editor specification would never run.

We never noticed the problem because the code is indeed
correct, so git-commit never even tried to run the editor.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agot7502: clean up fake_editor tests
Jeff King [Thu, 26 Jul 2012 20:27:55 +0000 (16:27 -0400)]
t7502: clean up fake_editor tests

Using write_script saves us a few lines of code, and means
we consistently use $SHELL_PATH.

We can also drop the setting of the $pwd variable from
$(pwd). In the first instance, there is no reason to use it
(we can just use $(pwd) directly two lines later, since we
are interpolating the here-document). In the second
instance, it is totally pointless and probably just a
cut-and-paste from the first instance.

Finally, we can use a non-interpolating here document for
the final script, which saves some quoting.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoi18n: leave \n out of translated diffstat
Nguyễn Thái Ngọc Duy [Thu, 26 Jul 2012 12:52:36 +0000 (19:52 +0700)]
i18n: leave \n out of translated diffstat

GETTEXT_POISON scrapes everything in translated strings, including \n.
t4205.12 however needs this \n in matching the end result. Keep this
\n out of translation to make t4205.12 happy.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/test-lib-source-build-options-early'
Junio C Hamano [Wed, 25 Jul 2012 22:47:08 +0000 (15:47 -0700)]
Merge branch 'jc/test-lib-source-build-options-early'

Reorders t/test-lib.sh so that we dot-source GIT-BUILD-OPTIONS that
records the shell and Perl the user told us to use with Git a lot
early, so that test-lib.sh script itself can use "$PERL_PATH" in
one of its early operations.

* jc/test-lib-source-build-options-early:
  test-lib: reorder and include GIT-BUILD-OPTIONS a lot earlier

12 years agoMerge branch 'mm/config-xdg'
Junio C Hamano [Wed, 25 Jul 2012 22:47:04 +0000 (15:47 -0700)]
Merge branch 'mm/config-xdg'

Finishing touches to the XDG support (new feature for 1.7.12) and
tests.

* mm/config-xdg:
  t1306: check that XDG_CONFIG_HOME works
  ignore: make sure we have an xdg path before using it
  attr: make sure we have an xdg path before using it
  test-lib.sh: unset XDG_CONFIG_HOME

12 years agoMerge branch 'cw/rebase-i-root'
Junio C Hamano [Wed, 25 Jul 2012 22:46:59 +0000 (15:46 -0700)]
Merge branch 'cw/rebase-i-root'

Finishing touches to the "rebase -i --root" (new feature for
1.7.12).

* cw/rebase-i-root:
  rebase -i: handle fixup of root commit correctly