gitweb.git
remote-bzr: detect local repositoriesFelipe Contreras Wed, 28 Nov 2012 01:01:35 +0000 (02:01 +0100)

remote-bzr: detect local repositories

So we don't create a clone unnecessarily.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-bzr: add support for older versions of bzrFelipe Contreras Wed, 28 Nov 2012 01:01:34 +0000 (02:01 +0100)

remote-bzr: add support for older versions of bzr

At least as old as 2.0.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-bzr: add support to push special modesFelipe Contreras Sun, 11 Nov 2012 14:19:58 +0000 (15:19 +0100)

remote-bzr: add support to push special modes

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-bzr: add support for fecthing special modesFelipe Contreras Sun, 11 Nov 2012 14:19:57 +0000 (15:19 +0100)

remote-bzr: add support for fecthing special modes

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote-bzr: add simple testsFelipe Contreras Sun, 11 Nov 2012 14:19:56 +0000 (15:19 +0100)

remote-bzr: add simple tests

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test: Add check-non-portable-shell.plTorsten Bögershausen Wed, 2 Jan 2013 23:20:19 +0000 (00:20 +0100)

test: Add check-non-portable-shell.pl

Add the perl script "check-non-portable-shell.pl" to detect
non-portable shell syntax.

"echo -n" is an example of a shell command working on Linux, but not
on Mac OS X.

These shell commands are checked and reported as error:

- "echo -n" (printf should be used)
- "sed -i" (GNUism; use a temp file instead)
- "declare" (bashism, often used with arrays)
- "which" (unreliable exit status and output; use type instead)
- "test a == b" (bashism for "test a = b")

"make test-lint-shell-syntax" can be used to run only the check.

Helped-By: Jeff King <peff@peff.net>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 1.8.2 cycleJunio C Hamano Wed, 2 Jan 2013 18:44:12 +0000 (10:44 -0800)

Start 1.8.2 cycle

Various fixes that have been cooking in 'next' have been merged. All
of them should go to 'maint' for 1.8.1.1 later.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/test-portability'Junio C Hamano Wed, 2 Jan 2013 18:53:59 +0000 (10:53 -0800)

Merge branch 'jc/test-portability'

* jc/test-portability:
t9020: use configured Python to run the test helper
t3600: Avoid "cp -a", which is a GNUism

Merge branch 'jc/maint-fbsd-sh-ifs-workaround'Junio C Hamano Wed, 2 Jan 2013 18:40:41 +0000 (10:40 -0800)

Merge branch 'jc/maint-fbsd-sh-ifs-workaround'

Some shells do not behave correctly when IFS is unset; work it
around by explicitly setting it to the default value.

* jc/maint-fbsd-sh-ifs-workaround:
sh-setup: work around "unset IFS" bug in some shells

Merge branch 'sp/shortlog-missing-lf'Junio C Hamano Wed, 2 Jan 2013 18:40:34 +0000 (10:40 -0800)

Merge branch 'sp/shortlog-missing-lf'

When a line to be wrapped has a solid run of non space characters
whose length exactly is the wrap width, "git shortlog -w" failed to
add a newline after such a line.

* sp/shortlog-missing-lf:
strbuf_add_wrapped*(): Remove unused return value
shortlog: fix wrapping lines of wraplen

Merge branch 'md/gitweb-sort-by-age'Junio C Hamano Wed, 2 Jan 2013 18:40:03 +0000 (10:40 -0800)

Merge branch 'md/gitweb-sort-by-age'

"gitweb", when sorting by age to show repositories with new
activities first, used to sort repositories with absolutely nothing
in it early, which was not very useful.

* md/gitweb-sort-by-age:
gitweb: Sort projects with undefined ages last

Merge branch 'nd/invalidate-i-t-a-cache-tree'Junio C Hamano Wed, 2 Jan 2013 18:39:51 +0000 (10:39 -0800)

Merge branch 'nd/invalidate-i-t-a-cache-tree'

After "git add -N" and then writing a tree object out of the
index, the cache-tree data structure got corrupted.

* nd/invalidate-i-t-a-cache-tree:
cache-tree: invalidate i-t-a paths after generating trees
cache-tree: fix writing cache-tree when CE_REMOVE is present
cache-tree: replace "for" loops in update_one with "while" loops
cache-tree: remove dead i-t-a code in verify_cache()

Merge branch 'jk/repack-ref-racefix'Junio C Hamano Wed, 2 Jan 2013 18:39:36 +0000 (10:39 -0800)

Merge branch 'jk/repack-ref-racefix'

"git pack-refs" that ran in parallel to another process that created
new refs had a nasty race.

* jk/repack-ref-racefix:
refs: do not use cached refs in repack_without_ref

Merge branch 'rb/http-cert-cred-no-username-prompt'Junio C Hamano Wed, 2 Jan 2013 18:39:21 +0000 (10:39 -0800)

Merge branch 'rb/http-cert-cred-no-username-prompt'

http transport was wrong to ask for the username when the
authentication is done by certificate identity.

* rb/http-cert-cred-no-username-prompt:
http.c: Avoid username prompt for certifcate credentials

Merge branch 'mk/maint-graph-infinity-loop'Junio C Hamano Wed, 2 Jan 2013 18:39:09 +0000 (10:39 -0800)

Merge branch 'mk/maint-graph-infinity-loop'

The --graph code fell into infinite loop when asked to do what the
code did not expect.

* mk/maint-graph-infinity-loop:
graph.c: infinite loop in git whatchanged --graph -m

Merge branch 'ss/svn-prompt'Junio C Hamano Wed, 2 Jan 2013 18:38:50 +0000 (10:38 -0800)

Merge branch 'ss/svn-prompt'

The way "git svn" asked for password using SSH_ASKPASS and
GIT_ASKPASS was not in line with the rest of the system.

* ss/svn-prompt:
git-svn, perl/Git.pm: extend and use Git->prompt method for querying users
perl/Git.pm: Honor SSH_ASKPASS as fallback if GIT_ASKPASS is not set
git-svn, perl/Git.pm: add central method for prompting passwords

Merge branch 'jc/mkstemp-more-careful-error-reporting'Junio C Hamano Wed, 2 Jan 2013 18:38:25 +0000 (10:38 -0800)

Merge branch 'jc/mkstemp-more-careful-error-reporting'

After failing to create a temporary file using mkstemp(), failing
pathname was not reported correctly on some platforms.

* jc/mkstemp-more-careful-error-reporting:
xmkstemp(): avoid showing truncated template more carefully

Merge branch 'jc/test-cvs-no-init-in-existing-dir'Junio C Hamano Wed, 2 Jan 2013 18:38:09 +0000 (10:38 -0800)

Merge branch 'jc/test-cvs-no-init-in-existing-dir'

t9200 runs "cvs init" on a directory that already exists, but a
platform can configure this fail for the current user (e.g. you need
to be in the cvsadmin group on NetBSD 6.0).

* jc/test-cvs-no-init-in-existing-dir:
t9200: let "cvs init" create the test repository

Merge branch 'jc/maint-test-portability'Junio C Hamano Wed, 2 Jan 2013 18:37:48 +0000 (10:37 -0800)

Merge branch 'jc/maint-test-portability'

t4014, t9502 and t0200 tests had various portability issues that
broke on OpenBSD.

* jc/maint-test-portability:
t4014: fix arguments to grep
t9502: do not assume GNU tar
t0200: "locale" may not exist

Merge branch 'mh/ceiling'Junio C Hamano Wed, 2 Jan 2013 18:36:59 +0000 (10:36 -0800)

Merge branch 'mh/ceiling'

An element on GIT_CEILING_DIRECTORIES list that does not name the
real path to a directory (i.e. a symbolic link) could have caused
the GIT_DIR discovery logic to escape the ceiling.

* mh/ceiling:
string_list_longest_prefix(): remove function
setup_git_directory_gently_1(): resolve symlinks in ceiling paths
longest_ancestor_length(): require prefix list entries to be normalized
longest_ancestor_length(): take a string_list argument for prefixes
longest_ancestor_length(): use string_list_split()
Introduce new function real_path_if_valid()
real_path_internal(): add comment explaining use of cwd
Introduce new static function real_path_internal()

build: do not automatically reconfigure unless configur... Jonathan Nieder Wed, 2 Jan 2013 08:25:44 +0000 (00:25 -0800)

build: do not automatically reconfigure unless configure.ac changed

Starting with v1.7.12-rc0~4^2 (build: reconfigure automatically if
configure.ac changes, 2012-07-19), "config.status --recheck" is
automatically run every time the "configure" script changes. In
particular, that means the configuration procedure repeats whenever
the version number changes (since the configure script changes to
support "./configure --version" and "./configure --help"), making
bisecting painfully slow.

The intent was to make the reconfiguration process only trigger for
changes to configure.ac's logic. Tweak the Makefile rule to match
that intent by depending on configure.ac instead of configure.

Reported-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: give list and maintainer addressesJunio C Hamano Wed, 2 Jan 2013 17:31:54 +0000 (09:31 -0800)

SubmittingPatches: give list and maintainer addresses

We told readers to "send it to the list" (or the maintainer) without
telling what addresses are to be used. Correct this.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: remove overlong checklistJunio C Hamano Tue, 1 Jan 2013 23:19:00 +0000 (15:19 -0800)

SubmittingPatches: remove overlong checklist

The section is no longer a concise checklist. It also talks about
things that are not covered in the "Long version" text, which means
people need to read both, covering more or less the same thing in
different phrasing.

Fold the details into the main text and remove the section.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9020: which is not portableTorsten Bögershausen Tue, 1 Jan 2013 21:42:03 +0000 (22:42 +0100)

t9020: which is not portable

Use type instead

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9810: Do not use sed -iTorsten Bögershausen Tue, 1 Jan 2013 21:40:37 +0000 (22:40 +0100)

t9810: Do not use sed -i

sed -i is not portable on all systems. Use sed with different input
and output files. Utilize a tmp file whenever needed.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: fix error in sanitize when highlight is enabledOrgad Shaneh Sun, 30 Dec 2012 11:52:53 +0000 (13:52 +0200)

gitweb: fix error in sanitize when highlight is enabled

$1 becomes undef by internal regex, since it has no capture groups.

Match against accpetable control characters using index() instead of a regex.

Signed-off-by: Orgad Shaneh <orgads@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: full-ness of a bundle is significant... Junio C Hamano Tue, 1 Jan 2013 20:46:15 +0000 (12:46 -0800)

Documentation: full-ness of a bundle is significant for cloning

Not necessarily every bundle file can be cloned from. Only the ones
that do not need prerequisites can.

When 1d52b02 (Documentation: minor grammatical fixes and rewording
in git-bundle.txt, 2009-03-22) reworded this paragraph, it lost a
critical hint to tell readers why this particular bundle can be
cloned from. Resurrect it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

wildmatch: replace variable 'special' with better named... Nguyễn Thái Ngọc Duy Tue, 1 Jan 2013 02:44:04 +0000 (09:44 +0700)

wildmatch: replace variable 'special' with better named ones

'special' is too generic and is used for two different purposes.
Replace it with 'match_slash' to indicate "**" pattern and 'negated'
for "[!...]" and "[^...]".

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat/fnmatch: respect NO_FNMATCH* even on glibcNguyễn Thái Ngọc Duy Tue, 1 Jan 2013 02:44:03 +0000 (09:44 +0700)

compat/fnmatch: respect NO_FNMATCH* even on glibc

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

wildmatch: fix "**" special caseNguyễn Thái Ngọc Duy Tue, 1 Jan 2013 02:44:02 +0000 (09:44 +0700)

wildmatch: fix "**" special case

"**" is adjusted to only be effective when surrounded by slashes, in
40bbee0 (wildmatch: adjust "**" behavior - 2012-10-15). Except that
the commit did it wrong:

1. when it checks for "the preceding slash unless ** is at the
beginning", it compares to wrong pointer. It should have compared
to the beginning of the pattern, not the text.

2. prev_p points to the character before "**", not the first "*". The
correct comparison must be "prev_p < pattern" or
"prev_p + 1 == pattern", not "prev_p == pattern".

3. The pattern must be surrounded by slashes unless it's at the
beginning or the end of the pattern. We do two checks: one for the
preceding slash and one the trailing slash. Both checks must be
met. The use of "||" is wrong.

This patch fixes all above.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: mention subsystems with dedicated... Junio C Hamano Tue, 1 Jan 2013 22:37:56 +0000 (14:37 -0800)

SubmittingPatches: mention subsystems with dedicated repositories

These were only mentioned in periodical "A note from the maintainer"
posting and not in the documentation suite. SubmittingPatches has a
section to help contributors decide on what commit to base their
changes, which is the most suitable place for this information.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: who am I and who cares?Junio C Hamano Tue, 1 Jan 2013 22:35:22 +0000 (14:35 -0800)

SubmittingPatches: who am I and who cares?

The introductory text in the "long version" talks about the origin
of this document with "I started ...", but it is unclear who that I
is, and more importantly, it is not interesting how it was started.

Just state the purpose of the document to help readers decide if it
is releavant to them.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: correct example restore from bundleKirill Brilliantov Tue, 1 Jan 2013 13:54:44 +0000 (17:54 +0400)

Documentation: correct example restore from bundle

Because the bundle created in the example does not record HEAD, "git
clone" will not check out the files to the working tree:

$ git clone pr.bundle q/
Cloning into 'q'...
Receiving objects: 100% (619/619), 13.52 MiB | 18.74 MiB/s, done.
Resolving deltas: 100% (413/413), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.

Avoid alarming the readers by adding "-b master" to the example. A
better fix may be to arrange the bundle created in the earlier step
to record HEAD, so that it can be cloned without this workaround.

Signed-off-by: Brilliantov Kirill Vladimirovich <brilliantov@inbox.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.txt: a few lines about branch.<name>.descriptionNguyễn Thái Ngọc Duy Tue, 1 Jan 2013 09:30:53 +0000 (16:30 +0700)

config.txt: a few lines about branch.<name>.description

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.1 v1.8.1Junio C Hamano Mon, 31 Dec 2012 22:24:22 +0000 (14:24 -0800)

Git 1.8.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge --no-edit: do not credit people involved in the... Junio C Hamano Fri, 28 Dec 2012 23:29:31 +0000 (15:29 -0800)

merge --no-edit: do not credit people involved in the side branch

The credit lines "By" and "Via" to credit authors and committers for
their contributions on the side branch are meant as a hint to the
integrator to decide whom to mention in the log message text. After
the integrator saves the message in the editor, they are meant to go
away and that is why they are commented out.

When a merge is recorded without editing the generated message,
however, its contents do not go through the normal stripspace()
and these lines are left in the merge.

Stop producing them when we know the merge is going to be recorded
without editing, i.e. when --no-edit is given.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use longer alias names in subdirectory testsAaron Schrab Fri, 28 Dec 2012 23:03:06 +0000 (18:03 -0500)

Use longer alias names in subdirectory tests

When testing aliases in t/t1020-subdirectory.sh use longer names so that
they're less likely to conflict with a git-* command somewhere in the
$PATH.

I have a git-ss command in my path which prevents the 'ss' alias from
being used. This command will always fail for git.git, causing the test
to fail. Even if the command succeeded, that would be a false success
for the test since the alias wasn't actually used. A longer, more
descriptive name will make it much less likely that somebody has a
command in their $PATH which will shadow the alias created for the test.

While here, use a longer name for the 'test' alias as well since that is
also short and meaningful enough to make it not unlikely that somebody
would have a command in their $PATH which will shadow that as well.

Signed-off-by: Aaron Schrab <aaron@schrab.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: rename free_excludes() to clear_exclude_list()Adam Spiers Thu, 27 Dec 2012 02:32:29 +0000 (02:32 +0000)

dir.c: rename free_excludes() to clear_exclude_list()

It is clearer to use a 'clear_' prefix for functions which empty
and deallocate the contents of a data structure without freeing
the structure itself, and a 'free_' prefix for functions which
also free the structure itself.

http://article.gmane.org/gmane.comp.version-control.git/206128

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: refactor is_path_excluded()Adam Spiers Thu, 27 Dec 2012 02:32:28 +0000 (02:32 +0000)

dir.c: refactor is_path_excluded()

In a similar way to the previous commit, this extracts a new helper
function last_exclude_matching_path() which return the last
exclude_list element which matched, or NULL if no match was found.
is_path_excluded() becomes a wrapper around this, and just returns 0
or 1 depending on whether any matching exclude_list element was found.

This allows callers to find out _why_ a given path was excluded,
rather than just whether it was or not, paving the way for a new git
sub-command which allows users to test their exclude lists from the
command line.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: refactor is_excluded()Adam Spiers Thu, 27 Dec 2012 02:32:27 +0000 (02:32 +0000)

dir.c: refactor is_excluded()

In a similar way to the previous commit, this extracts a new helper
function last_exclude_matching() which returns the last exclude_list
element which matched, or NULL if no match was found. is_excluded()
becomes a wrapper around this, and just returns 0 or 1 depending on
whether any matching exclude_list element was found.

This allows callers to find out _why_ a given path was excluded,
rather than just whether it was or not, paving the way for a new git
sub-command which allows users to test their exclude lists from the
command line.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: refactor is_excluded_from_list()Adam Spiers Thu, 27 Dec 2012 02:32:26 +0000 (02:32 +0000)

dir.c: refactor is_excluded_from_list()

The excluded function uses a new helper function called
last_exclude_matching_from_list() to perform the inner loop over all of
the exclude patterns. The helper just tells us whether the path is
included, excluded, or undecided.

However, it may be useful to know _which_ pattern was triggered. So
let's pass out the entire exclude match, which contains the status
information we were already passing out.

Further patches can make use of this.

This is a modified forward port of a patch from 2009 by Jeff King:
http://article.gmane.org/gmane.comp.version-control.git/108815

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: rename excluded() to is_excluded()Adam Spiers Thu, 27 Dec 2012 02:32:25 +0000 (02:32 +0000)

dir.c: rename excluded() to is_excluded()

Continue adopting clearer names for exclude functions. This is_*
naming pattern for functions returning booleans was discussed here:

http://thread.gmane.org/gmane.comp.version-control.git/204661/focus=204924

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: rename excluded_from_list() to is_excluded_from_... Adam Spiers Thu, 27 Dec 2012 02:32:24 +0000 (02:32 +0000)

dir.c: rename excluded_from_list() to is_excluded_from_list()

Continue adopting clearer names for exclude functions. This 'is_*'
naming pattern for functions returning booleans was discussed here:

http://thread.gmane.org/gmane.comp.version-control.git/204661/focus=204924

Also adjust their callers as necessary.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: rename path_excluded() to is_path_excluded()Adam Spiers Thu, 27 Dec 2012 02:32:23 +0000 (02:32 +0000)

dir.c: rename path_excluded() to is_path_excluded()

Start adopting clearer names for exclude functions. This 'is_*'
naming pattern for functions returning booleans was agreed here:

http://thread.gmane.org/gmane.comp.version-control.git/204661/focus=204924

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: rename cryptic 'which' variable to more consiste... Adam Spiers Thu, 27 Dec 2012 02:32:22 +0000 (02:32 +0000)

dir.c: rename cryptic 'which' variable to more consistent name

'el' is only *slightly* less cryptic, but is already used as the
variable name for a struct exclude_list pointer in numerous other
places, so this reduces the number of cryptic variable names in use by
one :-)

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improve documentation and comments regarding directory... Adam Spiers Thu, 27 Dec 2012 02:32:21 +0000 (02:32 +0000)

Improve documentation and comments regarding directory traversal API

traversal API has a few potentially confusing properties. These
comments clarify a few key aspects and will hopefully make it easier
to understand for other newcomers in the future.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

api-directory-listing.txt: update to match codeAdam Spiers Thu, 27 Dec 2012 02:32:20 +0000 (02:32 +0000)

api-directory-listing.txt: update to match code

7c4c97c0ac turned the flags in struct dir_struct into a single bitfield
variable, but forgot to update this document.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove the suggestion to use parsecvs, which is current... Eric S. Raymond Fri, 28 Dec 2012 16:20:25 +0000 (11:20 -0500)

Remove the suggestion to use parsecvs, which is currently broken.

The parsecvs code has been neglected for a long time, and the only
public version does not even build correctly. I have been handed
control of the project and intend to fix this, but until I do it
cannot be recommended.

Also, the project URL given for Subversion needed to be updated
to follow their site move.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add checks to Python scripts for version dependencies.Eric S. Raymond Fri, 28 Dec 2012 16:40:59 +0000 (11:40 -0500)

Add checks to Python scripts for version dependencies.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'so/prompt-command'Junio C Hamano Fri, 28 Dec 2012 00:00:07 +0000 (16:00 -0800)

Merge branch 'so/prompt-command'

Finishing touches...

* so/prompt-command:
make __git_ps1 accept a third parameter in pcmode

Sync with 1.8.0.3Junio C Hamano Thu, 27 Dec 2012 23:59:42 +0000 (15:59 -0800)

Sync with 1.8.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.0.3 v1.8.0.3Junio C Hamano Thu, 27 Dec 2012 23:57:20 +0000 (15:57 -0800)

Git 1.8.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

git(1): show link to contributor summary pageJunio C Hamano Wed, 12 Dec 2012 18:06:24 +0000 (10:06 -0800)

git(1): show link to contributor summary page

We earlier removed a link to list of contributors that pointed to a
defunct page; let's use a working one from Ohloh.net to replace it
instead.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sl/maint-git-svn-docs' into maintJunio C Hamano Thu, 27 Dec 2012 23:38:34 +0000 (15:38 -0800)

Merge branch 'sl/maint-git-svn-docs' into maint

* sl/maint-git-svn-docs:
git-svn: Note about tags.
git-svn: Expand documentation for --follow-parent
git-svn: Recommend use of structure options.
git-svn: Document branches with at-sign(@).

git-svn: Note about tags.Sebastian Leske Fri, 23 Nov 2012 07:29:38 +0000 (08:29 +0100)

git-svn: Note about tags.

Document that 'git svn' will import SVN tags as branches.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Expand documentation for --follow-parentSebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Expand documentation for --follow-parent

Describe what the option --follow-parent does, and what happens if it is
set or unset.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Recommend use of structure options.Sebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Recommend use of structure options.

Document that when using git svn, one should usually either use the
directory structure options to import branches as branches, or only
import one subdirectory. The default behaviour of cloning all branches
and tags as subdirectories in the working copy is usually not what the
user wants.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Document branches with at-sign(@).Sebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Document branches with at-sign(@).

git svn sometimes creates branches with an at-sign in the name
(branchname@revision). These branches confuse many users and it is a FAQ
why they are created. Document when git svn creates them.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'gb/maint-doc-svn-log-window-size' into... Junio C Hamano Thu, 27 Dec 2012 23:34:37 +0000 (15:34 -0800)

Merge branch 'gb/maint-doc-svn-log-window-size' into maint

* branch 'gb/maint-doc-svn-log-window-size':
Document git-svn fetch --log-window-size parameter

Merge branch 'km/maint-doc-git-reset' into maintJunio C Hamano Thu, 27 Dec 2012 23:32:27 +0000 (15:32 -0800)

Merge branch 'km/maint-doc-git-reset' into maint

* branch 'km/maint-doc-git-reset':
doc: git-reset: make "<mode>" optional

git-remote-helpers.txt: document invocation before... Max Horn Tue, 27 Nov 2012 23:03:21 +0000 (00:03 +0100)

git-remote-helpers.txt: document invocation before input format

In the distant past, the order things were documented was
'Invocation', 'Commands', 'Capabilities', ...

Then it was decided that before giving a list of Commands, there
should be an overall description of the 'Input format', which was
a wise decision. However, this description was put as the very
first thing, with the rationale that any implementor would want
to know that first.

However, it seems an implementor would actually first need to
know how the remote helper will be invoked, so moving
'Invocation' to the front again seems logical. Moreover, we now
don't switch from discussing the input format to the invocation
style and then back to input related stuff.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/avoid-mailto-invalid-in-doc' into... Junio C Hamano Thu, 27 Dec 2012 23:27:46 +0000 (15:27 -0800)

Merge branch 'jk/avoid-mailto-invalid-in-doc' into maint

* jk/avoid-mailto-invalid-in-doc:
Documentation: don't link to example mail addresses

Merge branch 'tj/maint-doc-commit-sign' into maintJunio C Hamano Thu, 27 Dec 2012 23:24:51 +0000 (15:24 -0800)

Merge branch 'tj/maint-doc-commit-sign' into maint

* branch 'tj/maint-doc-commit-sign':
Add -S, --gpg-sign option to manpage of "git commit"

Documentation: move diff.wordRegex from config.txt... Ramkumar Ramachandra Tue, 13 Nov 2012 15:42:44 +0000 (21:12 +0530)

Documentation: move diff.wordRegex from config.txt to diff-config.txt

19299a8 (Documentation: Move diff.<driver>.* from config.txt to
diff-config.txt, 2011-04-07) moved the diff configuration options to
diff-config.txt, but forgot about diff.wordRegex, which was left
behind in config.txt. Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove Documentation/pt_BR/gittutorial.txtThomas Ackermann Thu, 27 Dec 2012 14:15:52 +0000 (15:15 +0100)

Remove Documentation/pt_BR/gittutorial.txt

This file is rather outdated and IMHO shouldn't be there in the first place.
(If there are translations of the Git documentation they are better be kept
separate from the original documentation.)

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mergetools/p4merge: Honor $TMPDIR for the /dev/null... David Aguilar Thu, 27 Dec 2012 00:45:29 +0000 (16:45 -0800)

mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder

Use $TMPDIR when creating the /dev/null placeholder for p4merge.
This prevents users from finding a seemingly random untracked file
in their worktree.

This is different than what mergetool does with $LOCAL and
$REMOTE because those files exist to aid users when resolving
merges. p4merge's /dev/null placeholder is not helpful in that
situation so it is sensible to keep it out of the worktree.

Reported-by: Jeremy Morton <admin@game-point.net>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make __git_ps1 accept a third parameter in pcmodeSimon Oosthoek Wed, 26 Dec 2012 19:15:05 +0000 (20:15 +0100)

make __git_ps1 accept a third parameter in pcmode

The optional third parameter when __git_ps1 is used in
PROMPT_COMMAND mode as format string for printf to further
customize the way the git status string is embedded in the
user's PS1 prompt.

Signed-off-by: Simon Oosthoek <s.oosthoek@xs4all.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9200: let "cvs init" create the test repositoryJunio C Hamano Tue, 25 Dec 2012 01:09:49 +0000 (17:09 -0800)

t9200: let "cvs init" create the test repository

Some platforms (e.g. NetBSD 6.0) seem to configure their CVS to
allow "cvs init" in an existing directory only to members of
"cvsadmin".

Instead of preparing an empty directory and then running "cvs init"
on it, let's run "cvs init" and let it create the necessary
directory.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

learn to pick/revert into unborn branchMartin von Zweigbergk Fri, 21 Dec 2012 19:10:11 +0000 (11:10 -0800)

learn to pick/revert into unborn branch

cherry-picking into an unborn branch should work, so make it work,
with or without --ff.

Cherry-picking anything other than a commit that only adds files, will
naturally result in conflicts. Similarly, revert also works, but will
result in conflicts unless the specified revision only deletes files.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 23 Dec 2012 04:40:07 +0000 (20:40 -0800)

Merge branch 'maint'

Merge branch 'jc/doc-diff-blobs' into maintJunio C Hamano Sun, 23 Dec 2012 04:38:07 +0000 (20:38 -0800)

Merge branch 'jc/doc-diff-blobs' into maint

* jc/doc-diff-blobs:
Documentation: Describe "git diff <blob> <blob>" separately

Merge branch 'cr/doc-checkout-branch' into maintJunio C Hamano Sun, 23 Dec 2012 04:38:02 +0000 (20:38 -0800)

Merge branch 'cr/doc-checkout-branch' into maint

* cr/doc-checkout-branch:
Documentation/git-checkout.txt: document 70c9ac2 behavior
Documentation/git-checkout.txt: clarify usage

Merge branch 'ta/api-index-doc' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:42 +0000 (20:37 -0800)

Merge branch 'ta/api-index-doc' into maint

* ta/api-index-doc:
Remove misleading date from api-index-skel.txt

Merge branch 'as/doc-for-devs' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:33 +0000 (20:37 -0800)

Merge branch 'as/doc-for-devs' into maint

* as/doc-for-devs:
Documentation: move support for old compilers to CodingGuidelines
SubmittingPatches: add convention of prefixing commit messages

Merge branch 'sl/readme-gplv2' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:27 +0000 (20:37 -0800)

Merge branch 'sl/readme-gplv2' into maint

* sl/readme-gplv2:
README: it does not matter who the current maintainer is
README: Git is released under the GPLv2, not just "the GPL"

Merge branch 'jc/fetch-tags-doc' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:22 +0000 (20:37 -0800)

Merge branch 'jc/fetch-tags-doc' into maint

* jc/fetch-tags-doc:
fetch --tags: clarify documentation

Merge branch 'nd/index-format-doc' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:09 +0000 (20:37 -0800)

Merge branch 'nd/index-format-doc' into maint

* nd/index-format-doc:
index-format.txt: clarify what is "invalid"

Merge branch 'jk/mailmap-cleanup' into maintJunio C Hamano Sun, 23 Dec 2012 04:36:42 +0000 (20:36 -0800)

Merge branch 'jk/mailmap-cleanup' into maint

* jk/mailmap-cleanup:
contrib: update stats/mailmap script
.mailmap: normalize emails for Linus Torvalds
.mailmap: normalize emails for Jeff King
.mailmap: fix broken entry for Martin Langhoff
.mailmap: match up some obvious names/emails

Merge branch 'ta/doc-cleanup' into maintJunio C Hamano Sun, 23 Dec 2012 04:35:34 +0000 (20:35 -0800)

Merge branch 'ta/doc-cleanup' into maint

* ta/doc-cleanup:
Documentation: build html for all files in technical and howto
Documentation/howto: convert plain text files to asciidoc
Documentation/technical: convert plain text files to asciidoc
Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
Split over-long synopsis in git-fetch-pack.txt into several lines

Sort howto documents in howto-index.txtThomas Ackermann Sat, 22 Dec 2012 18:34:27 +0000 (19:34 +0100)

Sort howto documents in howto-index.txt

Howto documents in howto-index.txt were listed in a rather
random order. So better sort them.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-subtree: fix typo in manpageMichael Schubert Sat, 22 Dec 2012 14:46:02 +0000 (15:46 +0100)

git-subtree: fix typo in manpage

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-subtree: ignore git-subtree executableMichael Schubert Sat, 22 Dec 2012 14:45:40 +0000 (15:45 +0100)

git-subtree: ignore git-subtree executable

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: move test_cmp_rev to test-lib-functionsMartin von Zweigbergk Fri, 21 Dec 2012 19:10:10 +0000 (11:10 -0800)

tests: move test_cmp_rev to test-lib-functions

A function for checking that two given parameters refer to the same
revision was defined in several places, so move the definition to
test-lib-functions.sh instead.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.1-rc3 v1.8.1-rc3Junio C Hamano Sat, 22 Dec 2012 19:48:47 +0000 (11:48 -0800)

Git 1.8.1-rc3

The changes since -rc2 are mostly documentation updates.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ta/new-command-howto'Junio C Hamano Fri, 21 Dec 2012 23:19:25 +0000 (15:19 -0800)

Merge branch 'ta/new-command-howto'

* ta/new-command-howto:
Move ./technical/api-command.txt to ./howto/new-command.txt

Merge branch 'jc/doc-diff-blobs'Junio C Hamano Fri, 21 Dec 2012 23:19:13 +0000 (15:19 -0800)

Merge branch 'jc/doc-diff-blobs'

"git diff <blob> <blob>" was not documented and was only hinted as
an extension to "git diff <commit> <commit> -- <pathspec>", but
comparison between two blobs are more special than that. It does
not take any pathspec to begin with.

* jc/doc-diff-blobs:
Documentation: Describe "git diff <blob> <blob>" separately

Merge branch 'cr/doc-checkout-branch'Junio C Hamano Fri, 21 Dec 2012 23:19:08 +0000 (15:19 -0800)

Merge branch 'cr/doc-checkout-branch'

Document the magic "git checkout <no-such-branch>" hack to create
local branch out of a remote tracking branch that hasn't been
documented so far.

* cr/doc-checkout-branch:
Documentation/git-checkout.txt: document 70c9ac2 behavior
Documentation/git-checkout.txt: clarify usage

Merge branch 'ta/api-index-doc'Junio C Hamano Fri, 21 Dec 2012 23:19:04 +0000 (15:19 -0800)

Merge branch 'ta/api-index-doc'

* ta/api-index-doc:
Remove misleading date from api-index-skel.txt

Merge branch 'jk/avoid-mailto-invalid-in-doc'Junio C Hamano Fri, 21 Dec 2012 23:18:57 +0000 (15:18 -0800)

Merge branch 'jk/avoid-mailto-invalid-in-doc'

Avoids invalid sample e-mail addresses from becoming mailto links
in the formatted output.

* jk/avoid-mailto-invalid-in-doc:
Documentation: don't link to example mail addresses

Merge branch 'as/doc-for-devs'Junio C Hamano Fri, 21 Dec 2012 23:18:47 +0000 (15:18 -0800)

Merge branch 'as/doc-for-devs'

It might be a better idea to move the text the bottom one adds to
the extended description from the quick checklist part.

* as/doc-for-devs:
Documentation: move support for old compilers to CodingGuidelines
SubmittingPatches: add convention of prefixing commit messages

Merge branch 'sl/readme-gplv2'Junio C Hamano Fri, 21 Dec 2012 23:18:41 +0000 (15:18 -0800)

Merge branch 'sl/readme-gplv2'

Clarify that the project as a whole is GPLv2 only, with some parts
borrowed under different licenses that are compatible with GPLv2.

* sl/readme-gplv2:
README: it does not matter who the current maintainer is
README: Git is released under the GPLv2, not just "the GPL"

Merge branch 'jc/fetch-tags-doc'Junio C Hamano Fri, 21 Dec 2012 23:18:35 +0000 (15:18 -0800)

Merge branch 'jc/fetch-tags-doc'

"git fetch --tags" was explained as if it were "git fetch
--no-no-tags", which is not the case, causing confusion.

* jc/fetch-tags-doc:
fetch --tags: clarify documentation

Merge branch 'nd/index-format-doc'Junio C Hamano Fri, 21 Dec 2012 23:18:31 +0000 (15:18 -0800)

Merge branch 'nd/index-format-doc'

* nd/index-format-doc:
index-format.txt: clarify what is "invalid"

Merge branch 'sl/git-svn-docs'Junio C Hamano Fri, 21 Dec 2012 23:18:27 +0000 (15:18 -0800)

Merge branch 'sl/git-svn-docs'

* sl/git-svn-docs:
git-svn: Note about tags.
git-svn: Expand documentation for --follow-parent
git-svn: Recommend use of structure options.
git-svn: Document branches with at-sign(@).

Merge branch 'jk/mailmap-cleanup'Junio C Hamano Fri, 21 Dec 2012 23:18:20 +0000 (15:18 -0800)

Merge branch 'jk/mailmap-cleanup'

Update various entries in our .mailmap file.

* jk/mailmap-cleanup:
contrib: update stats/mailmap script
.mailmap: normalize emails for Linus Torvalds
.mailmap: normalize emails for Jeff King
.mailmap: fix broken entry for Martin Langhoff
.mailmap: match up some obvious names/emails

Move ./technical/api-command.txt to ./howto/new-command.txtThomas Ackermann Fri, 21 Dec 2012 18:05:28 +0000 (19:05 +0100)

Move ./technical/api-command.txt to ./howto/new-command.txt

The contents of this document does not describe any particular API, but
is more about the way to add a new command, which belongs to the "How To"
section of the documentation suite.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http.c: Avoid username prompt for certifcate credentialsRene Bredlau Fri, 21 Dec 2012 16:31:19 +0000 (17:31 +0100)

http.c: Avoid username prompt for certifcate credentials

If sslCertPasswordProtected is set to true do not ask for username to decrypt rsa key. This question is pointless, the key is only protected by a password. Internaly the username is simply set to "".

Signed-off-by: Rene Bredlau <git@unrelated.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs: do not use cached refs in repack_without_refJeff King Fri, 21 Dec 2012 08:04:49 +0000 (03:04 -0500)

refs: do not use cached refs in repack_without_ref

When we delete a ref that is packed, we rewrite the whole
packed-refs file and simply omit the ref that no longer
exists. However, we base the rewrite on whatever happens to
be in our refs cache, not what is necessarily on disk. That
opens us up to a race condition if another process is
simultaneously packing the refs, as we will overwrite their
newly-made pack-refs file with our potentially stale data,
losing commits.

You can demonstrate the race like this:

# setup some repositories
git init --bare parent &&
(cd parent && git config core.logallrefupdates true) &&
git clone parent child &&
(cd child && git commit --allow-empty -m base)

# in one terminal, repack the refs repeatedly
cd parent &&
while true; do
git pack-refs --all
done

# in another terminal, simultaneously push updates to
# master, and create and delete an unrelated ref
cd child &&
while true; do
git push origin HEAD:newbranch &&
git commit --allow-empty -m foo
us=`git rev-parse master` &&
git push origin master &&
git push origin :newbranch &&
them=`git --git-dir=../parent rev-parse master` &&
if test "$them" != "$us"; then
echo >&2 "$them" != "$us"
exit 1
fi
done

In many cases the two processes will conflict over locking
the packed-refs file, and the deletion of newbranch will
simply fail. But eventually you will hit the race, which
happens like this:

1. We push a new commit to master. It is already packed
(from the looping pack-refs call). We write the new
value (let us call it B) to $GIT_DIR/refs/heads/master,
but the old value (call it A) remains in the
packed-refs file.

2. We push the deletion of newbranch, spawning a
receive-pack process. Receive-pack advertises all refs
to the client, causing it to iterate over each ref; it
caches the packed refs in memory, which points at the
stale value A.

3. Meanwhile, a separate pack-refs process is running. It
runs to completion, updating the packed-refs file to
point master at B, and deleting $GIT_DIR/refs/heads/master
which also pointed at B.

4. Back in the receive-pack process, we get the
instruction to delete :newbranch. We take a lock on
packed-refs (which works, as the other pack-refs
process has already finished). We then rewrite the
contents using the cached refs, which contain the stale
value A.

The resulting packed-refs file points master once again at
A. The loose ref which would override it to point at B was
deleted (rightfully) in step 3. As a result, master now
points at A. The only trace that B ever existed in the
parent is in the reflog: the final entry will show master
moving from A to B, even though the ref still points at A
(so you can detect this race after the fact, because the
next reflog entry will move from A to C).

We can fix this by invalidating the packed-refs cache after
we have taken the lock. This means that we will re-read the
packed-refs file, and since we have the lock, we will be
sure that what we read will be atomically up-to-date when we
write (it may be out of date with respect to loose refs, but
that is OK, as loose refs take precedence).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: paint unexpectedly fixed known breakages in... Adam Spiers Sun, 16 Dec 2012 18:28:15 +0000 (18:28 +0000)

tests: paint unexpectedly fixed known breakages in bold red

Change color of unexpectedly fixed known breakages to bold red. An
unexpectedly passing test indicates that the test code is somehow
broken or out of sync with the code it is testing. Either way this is
an error which is potentially as bad as a failing test, and as such is
no longer portrayed as a pass in the output.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: test the test framework more thoroughlyAdam Spiers Sun, 16 Dec 2012 18:28:14 +0000 (18:28 +0000)

tests: test the test framework more thoroughly

Add 5 new full test suite runs each with a different number of
passing/failing/broken/fixed tests, in order to ensure that the
correct exit code and output are generated in each case. As before,
these are run in a subdirectory to avoid disrupting the metrics for
the parent tests.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>