gitweb.git
name-hash.c: remove cache entries instead of marking... Karsten Blees Thu, 14 Nov 2013 19:22:27 +0000 (20:22 +0100)

name-hash.c: remove cache entries instead of marking them CE_UNHASHED

The new hashmap implementation supports remove, so really remove unused
cache entries from the name hashmap instead of just marking them.

The CE_UNHASHED flag and CE_STATE_MASK are no longer needed.

Keep the CE_HASHED flag to prevent adding entries twice.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

name-hash.c: use new hash map implementation for cache... Karsten Blees Thu, 14 Nov 2013 19:21:58 +0000 (20:21 +0100)

name-hash.c: use new hash map implementation for cache entries

Note: the "ce->next = NULL;" in unpack-trees.c::do_add_entry can safely be
removed, as ce->next (now ce->ent.next) is always properly initialized in
name-hash.c::hash_index_entry.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

name-hash.c: remove unreferenced directory entriesKarsten Blees Thu, 14 Nov 2013 19:21:26 +0000 (20:21 +0100)

name-hash.c: remove unreferenced directory entries

The new hashmap implementation supports remove, so remove and free
directory entries that are no longer referenced by active cache entries.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

name-hash.c: use new hash map implementation for direct... Karsten Blees Thu, 14 Nov 2013 19:20:58 +0000 (20:20 +0100)

name-hash.c: use new hash map implementation for directories

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diffcore-rename.c: use new hash map implementationKarsten Blees Thu, 14 Nov 2013 19:20:26 +0000 (20:20 +0100)

diffcore-rename.c: use new hash map implementation

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diffcore-rename.c: simplify finding exact renamesKarsten Blees Thu, 14 Nov 2013 19:19:34 +0000 (20:19 +0100)

diffcore-rename.c: simplify finding exact renames

The find_exact_renames function currently only uses the hash table for
grouping, i.e.:

1. add sources
2. add destinations
3. iterate all buckets, per bucket:
4. split sources from destinations
5. iterate destinations, per destination:
6. iterate sources to find best match

This can be simplified by utilizing the lookup functionality of the hash
table, i.e.:

1. add sources
2. iterate destinations, per destination:
3. lookup sources matching the current destination
4. iterate sources to find best match

This saves several iterations and file_similarity allocations for the
destinations.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diffcore-rename.c: move code around to prepare for... Karsten Blees Thu, 14 Nov 2013 19:19:04 +0000 (20:19 +0100)

diffcore-rename.c: move code around to prepare for the next patch

No actual code changes, just move hash_filespec up and outdent part of
find_identical_files.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

buitin/describe.c: use new hash map implementationKarsten Blees Thu, 14 Nov 2013 19:18:35 +0000 (20:18 +0100)

buitin/describe.c: use new hash map implementation

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add a hashtable implementation that supports O(1) removalKarsten Blees Thu, 14 Nov 2013 19:17:54 +0000 (20:17 +0100)

add a hashtable implementation that supports O(1) removal

The existing hashtable implementation (in hash.[ch]) uses open addressing
(i.e. resolve hash collisions by distributing entries across the table).
Thus, removal is difficult to implement with less than O(n) complexity.
Resolving collisions of entries with identical hashes (e.g. via chaining)
is left to the client code.

Add a hashtable implementation that supports O(1) removal and is slightly
easier to use due to builtin entry chaining.

Supports all basic operations init, free, get, add, remove and iteration.

Also includes ready-to-use hash functions based on the public domain FNV-1
algorithm (http://www.isthe.com/chongo/tech/comp/fnv).

The per-entry data structure (hashmap_entry) is piggybacked in front of
the client's data structure to save memory. See test-hashmap.c for usage
examples.

The hashtable is resized by a factor of four when 80% full. With these
settings, average memory consumption is about 2/3 of hash.[ch], and
insertion is about twice as fast due to less frequent resizing.

Lookups are also slightly faster, because entries are strictly confined to
their bucket (i.e. no data of other buckets needs to be traversed).

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 18 Nov 2013 20:25:28 +0000 (12:25 -0800)

Merge branch 'maint'

Hotfix for recent regression while talking to upload-pack
in a repository with many symbolic refs.

* maint:
Revert "upload-pack: send non-HEAD symbolic refs"

Merge branch 'jx/branch-vv-always-compare-with-upstream'Junio C Hamano Mon, 18 Nov 2013 20:24:49 +0000 (12:24 -0800)

Merge branch 'jx/branch-vv-always-compare-with-upstream'

Hot-fix for a regression.

* jx/branch-vv-always-compare-with-upstream:
branch: fix --verbose output column alignment

branch: fix --verbose output column alignmentTorstein Hegge Thu, 14 Nov 2013 18:18:01 +0000 (19:18 +0100)

branch: fix --verbose output column alignment

Commit f2e0873 (branch: report invalid tracking branch as gone) removed
an early return from fill_tracking_info() in the path taken when 'git
branch -v' lists a branch in sync with its upstream. This resulted in an
unconditionally added space in front of the subject line:

$ git branch -v
* master f5eb3da commit pushed to upstream
topic f935eb6 unpublished topic

Instead, only add the trailing space if a decoration have been added.

To catch this kind of whitespace breakage in the tests, be a bit less
smart when filtering the output through sed.

Signed-off-by: Torstein Hegge <hegge@resisty.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat: add endianness helpersVicent Marti Thu, 14 Nov 2013 12:43:36 +0000 (07:43 -0500)

compat: add endianness helpers

The POSIX standard doesn't currently define a `ntohll`/`htonll`
function pair to perform network-to-host and host-to-network
swaps of 64-bit data. These 64-bit swaps are necessary for the on-disk
storage of EWAH bitmaps if they are not in native byte order.

Many thanks to Ramsay Jones <ramsay@ramsay1.demon.co.uk> and
Torsten Bögershausen <tboegi@web.de> for cygwin/mingw/msvc
portability fixes.

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

Revert "upload-pack: send non-HEAD symbolic refs"Junio C Hamano Mon, 18 Nov 2013 18:15:45 +0000 (10:15 -0800)

Revert "upload-pack: send non-HEAD symbolic refs"

This reverts commit 5e7dcad771cb873e278a0571b46910d7c32e2f6c; there
may be unbounded number of symbolic refs in the repository, but the
capability header line in the on-wire protocol has a rather low
length limit.

git-gui: correct spelling errors in commentsMasanari Iida Tue, 12 Nov 2013 15:17:44 +0000 (00:17 +0900)

git-gui: correct spelling errors in comments

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

push: switch default from "matching" to "simple"Junio C Hamano Sat, 5 Jan 2013 00:02:29 +0000 (16:02 -0800)

push: switch default from "matching" to "simple"

We promised to change the behaviour of lazy "git push [there]" that
does not say what to push on the command line from "matching" to
"simple" in Git 2.0.

This finally flips that bit.

Helped-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: enhance unspecified push default warningGreg Jacobson Fri, 4 Oct 2013 14:20:07 +0000 (10:20 -0400)

push: enhance unspecified push default warning

When the unset push.default warning message is displayed this may be
the first time many users encounter push.default.

Explain in the warning message in a compact manner what push.default
is and what the change means to the end-user to help the users decide.

Signed-off-by: Greg Jacobson <coder5000@gmail.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Helped-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Helped-by: Marc Branchaud <marcnarc@xiplink.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-log.txt: mark-up fix and minor rephasingJason St. John Wed, 13 Nov 2013 06:21:49 +0000 (01:21 -0500)

Documentation/git-log.txt: mark-up fix and minor rephasing

- typeset options, commands, and paths in monospace;
- typeset references to sections with emphasis;
- replace some double quotes with proper AsciiDoc quotes (e.g. ``foo'');
- use title case when referring to section headings.

Signed-off-by: Jason St. John <jstjohn@purdue.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-log: update "--log-size" descriptionJason St. John Wed, 13 Nov 2013 06:21:48 +0000 (01:21 -0500)

Documentation/git-log: update "--log-size" description

"--log-size" was added in commit 9fa3465, and the commit message
contained a satisfactory explanation; however, the man page entry
for it did not describe the actual output format, what the output
meant and what the option was meant to be used for.

Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jason St. John <jstjohn@purdue.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.5-rc2 v1.8.5-rc2Junio C Hamano Wed, 13 Nov 2013 20:59:31 +0000 (12:59 -0800)

Git 1.8.5-rc2

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

peek-remote: remove deprecated alias of ls-remoteJohn Keeping Sun, 10 Nov 2013 15:47:31 +0000 (15:47 +0000)

peek-remote: remove deprecated alias of ls-remote

This has been deprecated since commit 87194d2 (Deprecate peek-remote,
2007-11-24), included in version 1.5.4.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

lost-found: remove deprecated commandJohn Keeping Sun, 10 Nov 2013 15:47:30 +0000 (15:47 +0000)

lost-found: remove deprecated command

"git lost-found" has been deprecated since commit fc8b5f0 (Deprecate
git-lost-found, 2007-11-08), included in version 1.5.4.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tar-tree: remove deprecated commandJohn Keeping Sun, 10 Nov 2013 15:47:29 +0000 (15:47 +0000)

tar-tree: remove deprecated command

"git tar-tree" has been a thin wrapper around "git archive" since commit
fd88d9c (Remove upload-tar and make git-tar-tree a thin wrapper to
git-archive, 2006-09-24), which also made it print a message indicating
that git-tar-tree is deprecated.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

repo-config: remove deprecated alias for "git config"John Keeping Sun, 10 Nov 2013 15:47:28 +0000 (15:47 +0000)

repo-config: remove deprecated alias for "git config"

The release notes for Git 1.5.4 say that "git repo-config" will be
removed in the next feature release. Since Git 2.0 is nearly here,
remove it.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

transport-helper: check for 'forced update' messageFelipe Contreras Tue, 12 Nov 2013 20:56:57 +0000 (14:56 -0600)

transport-helper: check for 'forced update' message

So the remote-helpers can tell us when a forced push was needed.

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

transport-helper: add 'force' to 'export' helpersFelipe Contreras Tue, 12 Nov 2013 20:56:56 +0000 (14:56 -0600)

transport-helper: add 'force' to 'export' helpers

Otherwise they cannot know when to force the push or not (other than
hacks).

Tests-by: Richard Hansen <rhansen@bbn.com>
Documentation-by: Richard Hansen <rhansen@bbn.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bundle: use argv-arrayJunio C Hamano Tue, 12 Nov 2013 21:32:11 +0000 (13:32 -0800)

bundle: use argv-array

Instead of hand-crafted arrays to manage command line arguments
we create internally, use argv-array helpers.

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

Merge git://github.com/git-l10n/git-poJunio C Hamano Tue, 12 Nov 2013 19:26:11 +0000 (11:26 -0800)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: de.po: improve error message when pushing to unknown upstream
l10n: de.po: translate 68 new messages
po/TEAMS: update Thomas Rast's email address
l10n: Update Swedish translation (2194t0f0u)
l10n: fr.po 2194/1294 messages translated
l10n: zh_CN.po: translate 68 messages (2194t0f0u)
l10n: vi.po (2194t): Update and minor fix
l10n: git.pot: v1.8.5 round 1 (68 new, 9 removed)

Correct word usage of "timezone" in "Documentation... Jason St. John Sat, 9 Nov 2013 00:48:52 +0000 (19:48 -0500)

Correct word usage of "timezone" in "Documentation" directory

"timezone" is two words, not one (i.e. "time zone" is correct).

Correct this in these files:
-- date-formats.txt
-- git-blame.txt
-- git-cvsimport.txt
-- git-fast-import.txt
-- git-svn.txt
-- gitweb.conf.txt
-- rev-list-options.txt

Signed-off-by: Jason St. John <jstjohn@purdue.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib: typofixesMasanari Iida Tue, 12 Nov 2013 15:17:45 +0000 (00:17 +0900)

contrib: typofixes

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/technical/http-protocol.txt: typofixesMasanari Iida Tue, 12 Nov 2013 15:17:43 +0000 (00:17 +0900)

Documentation/technical/http-protocol.txt: typofixes

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

typofixes: fix misspelt commentsMasanari Iida Tue, 12 Nov 2013 15:17:42 +0000 (00:17 +0900)

typofixes: fix misspelt comments

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: improve error message when pushing to... Ralf Thielow Fri, 8 Nov 2013 19:34:35 +0000 (20:34 +0100)

l10n: de.po: improve error message when pushing to unknown upstream

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <tr@thomasrast.ch>

l10n: de.po: translate 68 new messagesRalf Thielow Sat, 2 Nov 2013 17:58:52 +0000 (18:58 +0100)

l10n: de.po: translate 68 new messages

Translate 68 new messages came from git.pot update in 727b957
(l10n: git.pot: v1.8.5 round 1 (68 new, 9 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <tr@thomasrast.ch>

po/TEAMS: update Thomas Rast's email addressRalf Thielow Sat, 2 Nov 2013 17:56:14 +0000 (18:56 +0100)

po/TEAMS: update Thomas Rast's email address

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <tr@thomasrast.ch>

git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR... Jonathan Nieder Mon, 11 Nov 2013 20:46:12 +0000 (12:46 -0800)

git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace

Quote DESTDIR and INSTLIBDIR for the shell in the same way as is done in
the toplevel Makefile to avoid confusion in case they contain shell
metacharacters.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-mediawiki build: make 'install' command... Jonathan Nieder Mon, 11 Nov 2013 20:45:50 +0000 (12:45 -0800)

git-remote-mediawiki build: make 'install' command configurable

On some machines, the most usable 'install' tool is named
'ginstall'.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-mediawiki: honor DESTDIR in "make install"Jonathan Nieder Mon, 11 Nov 2013 20:45:29 +0000 (12:45 -0800)

git-remote-mediawiki: honor DESTDIR in "make install"

So now you can run

DESTDIR=$(pwd)/tmp make -Ccontrib/mw-to-git install

to install the mediawiki remote helper, git-mw tool, and Git::Mediawiki
perl module under tmp/ as preparation for zipping it up and extracting
on another machine.

While at it, make sure the directory that should contain Git::Mediawiki
exists before putting a file there. Without this patch, the makefile
uses DESTDIR when installing git-mw and git-remote-mediawiki but not
the perl module, resulting in errors from "make install" if the
$(INSTLIBDIR)/Git directory does not exist:

install: cannot create regular file \
'/usr/share/perl/5.18.1/Git/Mediawiki.pm': No such file or directory

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

submodule update: remove unnecessary orig_flags variableJens Lehmann Mon, 11 Nov 2013 20:55:52 +0000 (21:55 +0100)

submodule update: remove unnecessary orig_flags variable

cmd_update() in the submodule script tries to preserve the options given
on the command line in the "orig_flags" variable to pass them on into the
recursion when the '--recursive' option is given. But this isn't necessary
because all the variables set by the options will be seen in the recursion
too as that is achieved by executing "eval cmd_update".

The same has already been done for cmd_status() in e15bec0ec, so let's
clean up cmd_update() likewise. Also add a test to make sure that a
submodule name given on the command line is not passed into the recursion
(which was the goal of adding the orig_flags variable in 98dbe63db).

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-fetch-pack uses URLs like git-fetchTorsten Bögershausen Fri, 8 Nov 2013 17:54:05 +0000 (18:54 +0100)

git-fetch-pack uses URLs like git-fetch

"git fetch-pack" allows [<host>:]<directory> to point out the source
repository.
Use the term <repository>, which is already used in "git fetch" or "git pull"
to describe URLs supported by Git.

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

git-remote-mediawiki: do not remove installed files... Jonathan Nieder Sat, 9 Nov 2013 02:22:39 +0000 (18:22 -0800)

git-remote-mediawiki: do not remove installed files in "clean" target

Running "make clean" after a successful "make install" should not
result in a broken mediawiki remote helper.

Reported-by: Thorsten Glaser <t.glaser@tarent.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge remote-tracking branch 'sv/nafmo/master'Jiang Xin Sun, 10 Nov 2013 00:48:23 +0000 (08:48 +0800)

Merge remote-tracking branch 'sv/nafmo/master'

* sv/nafmo/master:
l10n: Update Swedish translation (2194t0f0u)

l10n: Update Swedish translation (2194t0f0u)Peter Krefting Tue, 2 Jul 2013 12:09:37 +0000 (13:09 +0100)

l10n: Update Swedish translation (2194t0f0u)

And fix a typo.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

l10n: fr.po 2194/1294 messages translatedJean-Noel Avila Fri, 1 Nov 2013 14:35:08 +0000 (15:35 +0100)

l10n: fr.po 2194/1294 messages translated

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Signed-off-by: Sebastien Helleu <flashcode@flashtux.org>

Sync with 1.8.4.3Junio C Hamano Fri, 8 Nov 2013 20:08:43 +0000 (12:08 -0800)

Sync with 1.8.4.3

Git 1.8.4.3 v1.8.4.3Junio C Hamano Fri, 8 Nov 2013 20:06:19 +0000 (12:06 -0800)

Git 1.8.4.3

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

Merge branch 'jn/test-prereq-perl-doc' into maintJunio C Hamano Fri, 8 Nov 2013 20:01:58 +0000 (12:01 -0800)

Merge branch 'jn/test-prereq-perl-doc' into maint

The interaction between use of Perl in our test suite and NO_PERL
has been clarified a bit.

* jn/test-prereq-perl-doc:
t/README: tests can use perl even with NO_PERL

Merge branch 'ap/remote-hg-unquote-cquote' into maintJunio C Hamano Fri, 8 Nov 2013 20:01:13 +0000 (12:01 -0800)

Merge branch 'ap/remote-hg-unquote-cquote' into maint

A fast-import stream expresses a pathname with funny characters by
quoting them in C style; remote-hg remote helper (in contrib/)
forgot to unquote such a path.

* ap/remote-hg-unquote-cquote:
remote-hg: unquote C-style paths when exporting

Merge branch 'jc/upload-pack-send-symref' into maintJunio C Hamano Fri, 8 Nov 2013 19:38:00 +0000 (11:38 -0800)

Merge branch 'jc/upload-pack-send-symref' into maint

One long-standing flaw in the pack transfer protocol used by "git
clone" was that there was no way to tell the other end which branch
"HEAD" points at, and the receiving end needed to guess. A new
capability has been defined in the pack protocol to convey this
information so that cloning from a repository with more than one
branches pointing at the same commit where the HEAD is at now
reliably sets the initial branch in the resulting repository.

* jc/upload-pack-send-symref:
t5570: Update for clone-progress-to-stderr branch
t5570: Update for symref capability
clone: test the new HEAD detection logic
connect: annotate refs with their symref information in get_remote_head()
connect.c: make parse_feature_value() static
upload-pack: send non-HEAD symbolic refs
upload-pack: send symbolic ref information as capability
upload-pack.c: do not pass confusing cb_data to mark_our_ref()
t5505: fix "set-head --auto with ambiguous HEAD" test

Merge branch 'jk/http-auth-redirects' into maintJunio C Hamano Fri, 8 Nov 2013 19:37:25 +0000 (11:37 -0800)

Merge branch 'jk/http-auth-redirects' into maint

We did not handle cases where http transport gets redirected during
the authorization request (e.g. from http:// to https://).

* jk/http-auth-redirects:
http.c: Spell the null pointer as NULL
remote-curl: rewrite base url from info/refs redirects
remote-curl: store url as a strbuf
remote-curl: make refs_url a strbuf
http: update base URLs when we see redirects
http: provide effective url to callers
http: hoist credential request out of handle_curl_result
http: refactor options to http_get_*
http_request: factor out curlinfo_strbuf
http_get_file: style fixes

Sync with maintJunio C Hamano Thu, 7 Nov 2013 22:41:25 +0000 (14:41 -0800)

Sync with maint

* maint:
Start preparing for 1.8.4.3
gitignore.txt: fix documentation of "**" patterns

Start preparing for 1.8.4.3Junio C Hamano Thu, 7 Nov 2013 22:39:47 +0000 (14:39 -0800)

Start preparing for 1.8.4.3

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

Merge branch 'sc/doc-howto-dumb-http' into maintJunio C Hamano Thu, 7 Nov 2013 22:37:39 +0000 (14:37 -0800)

Merge branch 'sc/doc-howto-dumb-http' into maint

An ancient How-To on serving Git repositories on an HTTP server
lacked a warning that it has been mostly superseded with more
modern way.

* sc/doc-howto-dumb-http:
doc/howto: warn about (dumb)http server document being too old

Merge branch 'vd/doc-unpack-objects' into maintJunio C Hamano Thu, 7 Nov 2013 22:37:35 +0000 (14:37 -0800)

Merge branch 'vd/doc-unpack-objects' into maint

The synopsis section of "git unpack-objects" documentation has been
clarified a bit.

* vd/doc-unpack-objects:
Documentation: "pack-file" is not literal in unpack-objects
Documentation: restore a space in unpack-objects usage

Merge branch 'jk/subtree-install-fix' into maintJunio C Hamano Thu, 7 Nov 2013 22:37:17 +0000 (14:37 -0800)

Merge branch 'jk/subtree-install-fix' into maint

We did not generate HTML version of documentation to "git subtree"
in contrib/.

* jk/subtree-install-fix:
subtree: add makefile target for html docs

Merge branch 'hn/log-graph-color-octopus' into maintJunio C Hamano Thu, 7 Nov 2013 22:37:11 +0000 (14:37 -0800)

Merge branch 'hn/log-graph-color-octopus' into maint

Coloring around octopus merges in "log --graph" output was screwy.

* hn/log-graph-color-octopus:
graph: fix coloring around octopus merges

Merge branch 'mm/checkout-auto-track-fix' into maintJunio C Hamano Thu, 7 Nov 2013 22:36:59 +0000 (14:36 -0800)

Merge branch 'mm/checkout-auto-track-fix' into maint

"git checkout topic", when there is not yet a local "topic" branch
but there is a unique remote-tracking branch for a remote "topic"
branch, pretended as if "git checkout -t -b topic remote/$r/topic"
(for that unique remote $r) was run. This hack however was not
implemented for "git checkout topic --".

* mm/checkout-auto-track-fix:
checkout: proper error message on 'git checkout foo bar --'
checkout: allow dwim for branch creation for "git checkout $branch --"

Merge branch 'sg/prompt-svn-remote-fix' into maintJunio C Hamano Thu, 7 Nov 2013 22:36:45 +0000 (14:36 -0800)

Merge branch 'sg/prompt-svn-remote-fix' into maint

Bash prompting code to deal with an SVN remote as an upstream
were coded in a way not supported by older Bash versions (3.x).

* sg/prompt-svn-remote-fix:
bash prompt: don't use '+=' operator in show upstream code path

Merge branch 'jk/split-broken-ident' into maintJunio C Hamano Thu, 7 Nov 2013 22:34:51 +0000 (14:34 -0800)

Merge branch 'jk/split-broken-ident' into maint

The fall-back parsing of commit objects with broken author or
committer lines were less robust than ideal in picking up the
timestamps.

* jk/split-broken-ident:
split_ident: parse timestamp from end of line

Merge branch 'jc/revision-range-unpeel' into maintJunio C Hamano Thu, 7 Nov 2013 22:34:14 +0000 (14:34 -0800)

Merge branch 'jc/revision-range-unpeel' into maint

"git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
output, but "git rev-list --objects v1.0^..v1.0" did not.

* jc/revision-range-unpeel:
revision: do not peel tags used in range notation

gitignore.txt: fix documentation of "**" patternsKarsten Blees Thu, 7 Nov 2013 16:30:47 +0000 (17:30 +0100)

gitignore.txt: fix documentation of "**" patterns

"**" means bold in ASCIIDOC, so we need to escape it.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

submodule: don't access the .gitmodules cache entry... Jens Lehmann Thu, 7 Nov 2013 14:33:43 +0000 (15:33 +0100)

submodule: don't access the .gitmodules cache entry after removing it

Commit 5fee995244e introduced the stage_updated_gitmodules() function to
add submodule configuration updates to the index. It assumed that even
after calling remove_cache_entry_at() the same cache entry would still be
valid. This was true in the old days, as cache entries could never be
freed, but that is not so sure in the present as there is ongoing work to
free removed cache entries, which makes this code segfault.

Fix that by calling add_file_to_cache() instead of open coding it. Also
remove the "could not find .gitmodules in index" warning, as that won't
happen in regular use cases (and by then just silently adding it to the
index we do the right thing).

Thanks-to: Karsten Blees <karsten.blees@gmail.com>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.5-rc1 v1.8.5-rc1Junio C Hamano Wed, 6 Nov 2013 22:35:19 +0000 (14:35 -0800)

Git 1.8.5-rc1

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

Merge branch 'fc/trivial'Junio C Hamano Wed, 6 Nov 2013 22:34:43 +0000 (14:34 -0800)

Merge branch 'fc/trivial'

A random collection of style fixes and minor doc updates.

* fc/trivial:
setup: trivial style fixes
run-command: trivial style fixes
diff: trivial style fix
revision: trivial style fixes
pretty: trivial style fix
describe: trivial style fixes
transport-helper: trivial style fix
sha1-name: trivial style cleanup
branch: trivial style fix
revision: add missing include
doc/pull: clarify the illustrations
t: replace pulls with merges
merge: simplify ff-only option

wt-status: take the alignment burden off translatorsNguyễn Thái Ngọc Duy Tue, 5 Nov 2013 02:07:29 +0000 (09:07 +0700)

wt-status: take the alignment burden off translators

It's not easy for translators to see spaces in these strings have to
align, especially when there are no guarantees that these strings are
grouped together in .po files. Refactor the code and do the alignment
automatically.

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

sha1_loose_object_info(): do not return success on... Junio C Hamano Wed, 6 Nov 2013 18:00:57 +0000 (10:00 -0800)

sha1_loose_object_info(): do not return success on missing object

Since 052fe5ea (sha1_loose_object_info: make type lookup optional,
2013-07-12), sha1_loose_object_info() returns happily without
checking if the object in question exists, which is not what the the
caller sha1_object_info_extended() expects; the caller does not even
bother checking the existence of the object itself.

Noticed-by: Sven Brauch <svenbrauch@googlemail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.5Junio C Hamano Mon, 4 Nov 2013 23:05:08 +0000 (15:05 -0800)

Update draft release notes to 1.8.5

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

Merge branch 'bw/solaris-sed-tr-test-portability'Junio C Hamano Mon, 4 Nov 2013 22:58:19 +0000 (14:58 -0800)

Merge branch 'bw/solaris-sed-tr-test-portability'

* bw/solaris-sed-tr-test-portability:
t4015: simplify sed command that is not even seen by sed
Avoid difference in tr semantics between System V and BSD
Change sed i\ usage to something Solaris' sed can handle

Merge branch 'vd/doc-unpack-objects'Junio C Hamano Mon, 4 Nov 2013 22:58:15 +0000 (14:58 -0800)

Merge branch 'vd/doc-unpack-objects'

* vd/doc-unpack-objects:
Documentation: "pack-file" is not literal in unpack-objects
Documentation: restore a space in unpack-objects usage

Merge branch 'jk/duplicate-objects-in-packs'Junio C Hamano Mon, 4 Nov 2013 22:58:10 +0000 (14:58 -0800)

Merge branch 'jk/duplicate-objects-in-packs'

Test fixup to a topic recently graduated.

* jk/duplicate-objects-in-packs:
Fix '\%o' for printf from coreutils

Merge branch 'jk/subtree-install-fix'Junio C Hamano Mon, 4 Nov 2013 22:58:08 +0000 (14:58 -0800)

Merge branch 'jk/subtree-install-fix'

* jk/subtree-install-fix:
subtree: add makefile target for html docs

Merge branch 'ak/cvsserver-stabilize-use-of-hash-keys'Junio C Hamano Mon, 4 Nov 2013 22:58:05 +0000 (14:58 -0800)

Merge branch 'ak/cvsserver-stabilize-use-of-hash-keys'

* ak/cvsserver-stabilize-use-of-hash-keys:
cvsserver: Determinize output to combat Perl 5.18 hash randomization

Merge branch 'jk/wrap-perl-used-in-tests'Junio C Hamano Mon, 4 Nov 2013 22:58:01 +0000 (14:58 -0800)

Merge branch 'jk/wrap-perl-used-in-tests'

* jk/wrap-perl-used-in-tests:
t: use perl instead of "$PERL_PATH" where applicable
t: provide a perl() function which uses $PERL_PATH

Merge branch 'sc/doc-howto-dumb-http'Junio C Hamano Mon, 4 Nov 2013 22:57:57 +0000 (14:57 -0800)

Merge branch 'sc/doc-howto-dumb-http'

* sc/doc-howto-dumb-http:
doc/howto: warn about (dumb)http server document being too old

Merge branch 'jn/test-prereq-perl-doc'Junio C Hamano Mon, 4 Nov 2013 22:57:53 +0000 (14:57 -0800)

Merge branch 'jn/test-prereq-perl-doc'

* jn/test-prereq-perl-doc:
t/README: tests can use perl even with NO_PERL

t1005: add test for "read-tree --reset -u A B"Junio C Hamano Fri, 1 Nov 2013 22:04:08 +0000 (15:04 -0700)

t1005: add test for "read-tree --reset -u A B"

With a conflicted index, this used to give us an error.

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

t1005: reindentJunio C Hamano Fri, 1 Nov 2013 21:55:17 +0000 (14:55 -0700)

t1005: reindent

Just to update the style of this ancient test script to match
our house style.

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

unpack-trees: fix "read-tree -u --reset A B" with confl... Jeff King Sat, 29 Dec 2012 20:51:54 +0000 (15:51 -0500)

unpack-trees: fix "read-tree -u --reset A B" with conflicted index

When we call "read-tree --reset -u HEAD ORIG_HEAD", the first thing we
do with the index is to call read_cache_unmerged. Originally that
would read the index, leaving aside any unmerged entries. However, as
of d1a43f2 (reset --hard/read-tree --reset -u: remove unmerged new
paths, 2008-10-15), it actually creates a new cache entry to serve as
a placeholder, so that we later know to update the working tree.

However, we later noticed that the sha1 of that unmerged entry was
just copied from some higher stage, leaving you with random content in
the index. That was fixed by e11d7b5 ("reset --merge": fix unmerged
case, 2009-12-31), which instead puts the null sha1 into the newly
created entry, and sets a CE_CONFLICTED flag. At the same time, it
teaches the unpack-trees machinery to pay attention to this flag, so
that oneway_merge throws away the current value.

However, it did not update the code paths for twoway_merge, which is
where we end up in the two-way read-tree with --reset. We notice that
the HEAD and ORIG_HEAD versions are the same, and say "oh, we can just
reuse the current version". But that's not true. The current version
is bogus.

Notice this case and make sure we do not keep the bogus entry; either
we do not have that path in the tree we are moving to (i.e. remove
it), or we want to have the cache entry we created for the tree we are
moving to (i.e. resolve by explicitly saying the "newtree" version is
what we want).

[jc: this is from the almost year-old $gmane/212316]

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

t4015: simplify sed command that is not even seen by sedJunio C Hamano Mon, 4 Nov 2013 18:11:15 +0000 (10:11 -0800)

t4015: simplify sed command that is not even seen by sed

Noticed by Andreas Schwab; \<LF> inside a double quotes pair is
eaten by the shell to become an empty string and is not doing
anything.

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

l10n: zh_CN.po: translate 68 messages (2194t0f0u)Jiang Xin Tue, 17 Sep 2013 15:37:05 +0000 (23:37 +0800)

l10n: zh_CN.po: translate 68 messages (2194t0f0u)

Translate 68 new messages came from git.pot update in 727b957
(l10n: git.pot: v1.8.5 round 1 (68 new, 9 removed)).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

l10n: vi.po (2194t): Update and minor fixTran Ngoc Quan Sat, 2 Nov 2013 06:21:55 +0000 (13:21 +0700)

l10n: vi.po (2194t): Update and minor fix

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: git.pot: v1.8.5 round 1 (68 new, 9 removed)Jiang Xin Sat, 2 Nov 2013 00:08:26 +0000 (08:08 +0800)

l10n: git.pot: v1.8.5 round 1 (68 new, 9 removed)

Generate po/git.pot from v1.8.5-rc0-23-gaa27064 for git v1.8.5
l10n round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

rev-parse: introduce --exclude=<glob> to tame wildcardsJunio C Hamano Fri, 1 Nov 2013 19:13:01 +0000 (12:13 -0700)

rev-parse: introduce --exclude=<glob> to tame wildcards

Teach "rev-parse" the same "I'm going to glob, but omit the ones
that match these patterns" feature as "rev-list".

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

rev-list --exclude: export add/clear-ref-exclusion... Junio C Hamano Fri, 1 Nov 2013 19:02:45 +0000 (12:02 -0700)

rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API

... while updating their function signature. To be squashed into
the initial patch to rev-list.

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

rev-list --exclude: testsJunio C Hamano Fri, 1 Nov 2013 18:33:15 +0000 (11:33 -0700)

rev-list --exclude: tests

Add tests for the --exclude=<glob> feature.

A few tests are added for cases where use of globbing and
"--exclude" results in no positive revisions:

* "--exclude=<glob>" before "--all" etc. resulted in no results;

* "--stdin" is used but no input was given;

* "--all" etc. is used but no matching refs are found.

Currently, we fail such a request with the same error message we
would give to a command line that does not specify any positive
revision (e.g. "git rev-list<ENTER>").

We may want to treat these cases differently and not error out, but
the logic to detect that would be common to all of them, so I'd
leave it outside this topic for now, and stop at adding these tests
as food-for-thought.

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

document --exclude optionJohannes Sixt Mon, 2 Sep 2013 20:11:26 +0000 (22:11 +0200)

document --exclude option

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: "pack-file" is not literal in unpack... Vivien Didelot Fri, 1 Nov 2013 15:42:43 +0000 (11:42 -0400)

Documentation: "pack-file" is not literal in unpack-objects

Make it clear that "pack-file" is not to be spelled as is in the
unpack-objects usage.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.5Junio C Hamano Fri, 1 Nov 2013 15:14:52 +0000 (08:14 -0700)

Update draft release notes to 1.8.5

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

Merge branch 'sb/refs-code-cleanup'Junio C Hamano Fri, 1 Nov 2013 14:38:58 +0000 (07:38 -0700)

Merge branch 'sb/refs-code-cleanup'

* sb/refs-code-cleanup:
cache: remove unused function 'have_git_dir'
refs: remove unused function invalidate_ref_cache

Merge branch 'rs/web-browse-xdg-open'Junio C Hamano Fri, 1 Nov 2013 14:38:56 +0000 (07:38 -0700)

Merge branch 'rs/web-browse-xdg-open'

* rs/web-browse-xdg-open:
web--browse: Add support for xdg-open

Merge branch 'js/tests-windows-port-fix'Junio C Hamano Fri, 1 Nov 2013 14:38:54 +0000 (07:38 -0700)

Merge branch 'js/tests-windows-port-fix'

* js/tests-windows-port-fix:
tests: undo special treatment of CRLF for Windows
Windows: a test_cmp that is agnostic to random LF <> CRLF conversions
t5300-pack-object: do not compare binary data using test_cmp

Merge branch 'js/test-help-format-windows-port-fix'Junio C Hamano Fri, 1 Nov 2013 14:38:51 +0000 (07:38 -0700)

Merge branch 'js/test-help-format-windows-port-fix'

* js/test-help-format-windows-port-fix:
t3200: do not open a HTML manual page when DEFAULT_MAN_FORMAT is html

Merge branch 'jk/reset-p-current-head-fix'Junio C Hamano Fri, 1 Nov 2013 14:38:49 +0000 (07:38 -0700)

Merge branch 'jk/reset-p-current-head-fix'

"git reset -p HEAD" has codepath to special case it from resetting
to contents of other commits, but recent change broke it.

* jk/reset-p-current-head-fix:
reset: pass real rev name to add--interactive
add-interactive: handle unborn branch in patch mode

Merge branch 'jk/pack-corruption-post-mortem'Junio C Hamano Fri, 1 Nov 2013 14:38:46 +0000 (07:38 -0700)

Merge branch 'jk/pack-corruption-post-mortem'

* jk/pack-corruption-post-mortem:
howto: add article on recovering a corrupted object

Merge branch 'jk/for-each-ref-skip-parsing'Junio C Hamano Fri, 1 Nov 2013 14:38:41 +0000 (07:38 -0700)

Merge branch 'jk/for-each-ref-skip-parsing'

* jk/for-each-ref-skip-parsing:
for-each-ref: avoid loading objects to print %(objectname)

Merge branch 'ap/remote-hg-unquote-cquote'Junio C Hamano Fri, 1 Nov 2013 14:38:35 +0000 (07:38 -0700)

Merge branch 'ap/remote-hg-unquote-cquote'

A fast-import stream expresses a pathname with funny characters by
quoting them in C style; remote-hg remote helper forgot to unquote
such a path.

* ap/remote-hg-unquote-cquote:
remote-hg: unquote C-style paths when exporting

Merge branch 'jl/submodule-mv'Junio C Hamano Fri, 1 Nov 2013 14:38:26 +0000 (07:38 -0700)

Merge branch 'jl/submodule-mv'

Moving a regular file in a repository with a .gitmodules file was
producing a warning 'Could not find section in .gitmodules where
path=<filename>'.

* jl/submodule-mv:
mv: Fix spurious warning when moving a file in presence of submodules

rev-parse --parseopt: add the --stuck-long modeNicolas Vigier Thu, 31 Oct 2013 11:08:29 +0000 (12:08 +0100)

rev-parse --parseopt: add the --stuck-long mode

Add the --stuck-long option to output the options in their long form
if available, and with their arguments stuck.

Contrary to the default form (non stuck arguments and short options),
this can be parsed unambiguously when using options with optional
arguments :

- in the non stuck form, when an option is taking an optional argument
you cannot know if the next argument is its optional argument, or the
next option.

- the long options form allows to differentiate between an empty argument
'--option=' and an unset argument '--option', which is not possible
with short options.

Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use the word 'stuck' instead of 'sticked'Nicolas Vigier Thu, 31 Oct 2013 11:08:28 +0000 (12:08 +0100)

Use the word 'stuck' instead of 'sticked'

The past participle of 'stick' is 'stuck'.

Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: restore a space in unpack-objects usageVivien Didelot Thu, 31 Oct 2013 21:41:11 +0000 (17:41 -0400)

Documentation: restore a space in unpack-objects usage

The commit 87b7b84 removed a space in the unpack-objects usage, which
makes the synopsis a bit confusing. This patch simply restores it.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>