Code

git.git
15 years agogitweb: add t9501 tests for checking HTTP status codes
Mark Rada [Tue, 25 Aug 2009 05:03:48 +0000 (01:03 -0400)]
gitweb: add t9501 tests for checking HTTP status codes

Adds a new test file, t9501, that checks HTTP status codes and messages
from gitweb.

Currently, the only tests are for the snapshot feature.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: split test suite into library and tests
Mark Rada [Fri, 28 Aug 2009 02:07:07 +0000 (22:07 -0400)]
gitweb: split test suite into library and tests

To accommodate additions to the test cases for gitweb, the preamble
from t9500 is now in its own library so that new sets of tests for
gitweb can use the same setup without copying the code.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: improve snapshot error handling
Mark Rada [Tue, 25 Aug 2009 04:59:48 +0000 (00:59 -0400)]
gitweb: improve snapshot error handling

The last check in the second block of checks in the &git_snapshot routine
is never executed because the second to last check is a superset of the
last check.

Switch the order of the last two checks. It has the advantage of giving
clients a more specific reason why they cannot get a snapshot format if
the format they have chosen is disabled.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: add support for XZ compressed snapshots
Mark A Rada [Thu, 6 Aug 2009 14:28:25 +0000 (10:28 -0400)]
gitweb: add support for XZ compressed snapshots

The XZ compression format uses the LZMA2 compression algorithm, which
often yields higher compression ratios than both GZip and BZip2 at the
cost of using more CPU time and RAM. XZ is the slowest for compression,
but still much faster than BZip2 for decompression, almost comparable
to GZip (see benchmarks below).

Some simple benchmarks show the pros and cons of using XZ compression;
starting with an already tarball'd archive of the repos listed below.
Memory usage seemed to be consistent for any given algorithm at their
respective default compression levels.

CPU: AMD Sempron 3400+ (1 core @ 1.8GHz with 256K L2 cache)
Virtual Memory Usage
       GZip: 4152K        BZip2: 13352K        XZ: 102M

Linux 2.6 series (f5886c7f96f2542382d3a983c5f13e03d7fc5259)  349M
gzip    23.70s user   0.47s system  99% cpu   24.227 total    76M
gunzip  3.74s user    0.74s system  94% cpu   4.741 total
bzip2   130.96s user  0.53s system  99% cpu   2:11.97 total   59M
bunzip2 31.05s user   1.02s system  99% cpu   32.355 total
xz      448.78s user  0.91s system  99% cpu   7:31.28 total   51M
unxz    7.67s user    0.80s system  98% cpu   8.607 total

Git (0a53e9ddeaddad63ad106860237bbf53411d11a7)                11M
gzip    0.77s user    0.03s system  99% cpu   0.792 total    2.5M
gunzip  0.12s user    0.02s system  98% cpu   0.142 total
bzip2   3.42s user    0.02s system  99% cpu   3.454 total    2.1M
bunzip2 0.95s user    0.03s system  99% cpu   0.984 total
xz      12.88s user   0.14s system  98% cpu   13.239 total   1.9M
unxz    0.27s user    0.03s system  99% cpu   0.298 total

XZ (669413bb2db954bbfde3c4542fddbbab53891eb4)                1.8M
gzip    0.12s user    0.00s system  95% cpu   0.132 total    442K
gunzip  0.02s user    0.00s system  97% cpu   0.027 total
bzip2   1.28s user    0.01s system  99% cpu   1.298 total    363K
bunzip2 0.15s user    0.01s system  100% cpu  0.157 total
xz      1.62s user    0.03s system  99% cpu   1.652 total    347K
unxz    0.05s user    0.00s system  99% cpu   0.058 total

From a time and memory perspective, nothing compares to GZip, but if
given an average upload speed of 20KB/s, it would take ~400 seconds
longer to transfer the BZip2'd kernel snapshot than the XZ snapshot;
the transfer time difference is even greater between GZip and XZ. The
real time savings are relatively the same for all test cases, but less
dramatic for smaller repositories.

XZ decompresses ~1.8-2 times slower than GZip, and ~2.7-3.75 times
faster than BZip2; XZ gets relatively faster as snapshots get larger.
However, XZ takes relatively longer to compress as snapshots get larger.

The downside for XZ'd snapshots is the large CPU and memory load put on
the server to generate the compressed snapshot, though XZ will
eventually
have threading support, and the real clock time for making XZ'd
snapshots
would decrease if the server had a beefy multi-core CPU.

XZ compression is disabled by default to allow upgrades to take place
without any surprises, as the CPU and memory requirements will be an
issue for high load or lightweight servers. Also, the XZ format is still
new (format declared stable ~6 months ago), and there have been no
"stable" releases of the utils yet.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: update INSTALL regarding specific snapshot settings
Mark A Rada [Thu, 6 Aug 2009 14:27:26 +0000 (10:27 -0400)]
gitweb: update INSTALL regarding specific snapshot settings

This includes instructions on how to disable a snapshot format and how
to add options to a snapshot format (e.g. setting the compression
level).

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogitweb: support to globally disable a snapshot format
Mark A Rada [Thu, 6 Aug 2009 14:25:39 +0000 (10:25 -0400)]
gitweb: support to globally disable a snapshot format

Allow Gitweb administrators to set a 'disabled' key in the
%known_snapshot_formats hash to disable a specific snapshot format.

All formats are enabled by default to maintain backwards compatibility.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'sb/read-tree'
Junio C Hamano [Wed, 5 Aug 2009 19:40:07 +0000 (12:40 -0700)]
Merge branch 'sb/read-tree'

* sb/read-tree:
  read-tree: migrate to parse-options
  read-tree: convert unhelpful usage()'s to helpful die()'s

15 years agoMerge branch 'jc/apply-epoch-patch'
Junio C Hamano [Wed, 5 Aug 2009 19:40:00 +0000 (12:40 -0700)]
Merge branch 'jc/apply-epoch-patch'

* jc/apply-epoch-patch:
  apply: notice creation/removal patches produced by GNU diff

15 years agoMerge branch 'sb/parse-options'
Junio C Hamano [Wed, 5 Aug 2009 19:39:37 +0000 (12:39 -0700)]
Merge branch 'sb/parse-options'

* sb/parse-options:
  prune-packed: migrate to parse-options
  verify-pack: migrate to parse-options
  verify-tag: migrate to parse-options
  write-tree: migrate to parse-options

15 years agoMerge branch 'ns/init-mkdir'
Junio C Hamano [Wed, 5 Aug 2009 19:39:33 +0000 (12:39 -0700)]
Merge branch 'ns/init-mkdir'

* ns/init-mkdir:
  git init: optionally allow a directory argument

Conflicts:
builtin-init-db.c

15 years agoMerge branch 'mk/init-db-parse-options'
Junio C Hamano [Wed, 5 Aug 2009 19:39:06 +0000 (12:39 -0700)]
Merge branch 'mk/init-db-parse-options'

* mk/init-db-parse-options:
  init-db: migrate to parse-options

15 years agoMerge branch 'jk/maint-show-tag'
Junio C Hamano [Wed, 5 Aug 2009 19:38:54 +0000 (12:38 -0700)]
Merge branch 'jk/maint-show-tag'

* jk/maint-show-tag:
  show: add space between multiple items
  show: suppress extra newline when showing annotated tag

15 years agoMerge branch 'sb/maint-pull-rebase'
Junio C Hamano [Wed, 5 Aug 2009 19:38:39 +0000 (12:38 -0700)]
Merge branch 'sb/maint-pull-rebase'

* sb/maint-pull-rebase:
  pull: support rebased upstream + fetch + pull --rebase
  t5520-pull: Test for rebased upstream + fetch + pull --rebase

15 years agoMerge branch 'ne/futz-upload-pack'
Junio C Hamano [Wed, 5 Aug 2009 19:38:29 +0000 (12:38 -0700)]
Merge branch 'ne/futz-upload-pack'

* ne/futz-upload-pack:
  Shift object enumeration out of upload-pack

Conflicts:
upload-pack.c

15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 5 Aug 2009 19:37:40 +0000 (12:37 -0700)]
Merge branch 'maint'

* maint:
  gitweb/README: Document $base_url
  Documentation: git submodule: add missing options to synopsis
  Better usage string for reflog.
  hg-to-git: don't import the unused popen2 module
  send-email: remove debug trace
  config: Keep inner whitespace verbatim

15 years agoMerge branch 'maint-1.6.3' into maint
Junio C Hamano [Wed, 5 Aug 2009 19:37:24 +0000 (12:37 -0700)]
Merge branch 'maint-1.6.3' into maint

* maint-1.6.3:
  Better usage string for reflog.
  hg-to-git: don't import the unused popen2 module
  send-email: remove debug trace
  config: Keep inner whitespace verbatim

15 years agogitweb/README: Document $base_url
Jakub Narebski [Tue, 4 Aug 2009 15:54:32 +0000 (17:54 +0200)]
gitweb/README: Document $base_url

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: git submodule: add missing options to synopsis
Jens Lehmann [Sat, 1 Aug 2009 18:49:47 +0000 (20:49 +0200)]
Documentation: git submodule: add missing options to synopsis

The option --merge was missing for submodule update and --cached for
submodule summary.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-merge-base/git-show-branch --merge-base: Documentation and test
Michael J Gruber [Wed, 5 Aug 2009 07:59:20 +0000 (09:59 +0200)]
git-merge-base/git-show-branch --merge-base: Documentation and test

Currently, the documentation suggests that 'git merge-base -a' and 'git
show-branch --merge-base' are equivalent (in fact it claims that the
former cannot handle more than two revs).

Alas, the handling of more than two revs is very different. Document
this by tests and correct the documentation to reflect this.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-merge-base/git-show-branch: Cleanup documentation and usage
Michael J Gruber [Wed, 5 Aug 2009 07:59:19 +0000 (09:59 +0200)]
git-merge-base/git-show-branch: Cleanup documentation and usage

Make sure that usage strings and documentation coincide with each other
and with the actual code.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agot6010-merge-base.sh: Depict the octopus test graph
Michael J Gruber [Wed, 5 Aug 2009 07:59:18 +0000 (09:59 +0200)]
t6010-merge-base.sh: Depict the octopus test graph

...so that it is easier to reuse it for other tests.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoBetter usage string for reflog.
Matthieu Moy [Wed, 5 Aug 2009 15:36:28 +0000 (17:36 +0200)]
Better usage string for reflog.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agohg-to-git: don't import the unused popen2 module
Miklos Vajna [Mon, 3 Aug 2009 16:41:34 +0000 (18:41 +0200)]
hg-to-git: don't import the unused popen2 module

Importing the popen2 module in Python-2.6 results in the
"DeprecationWarning: The popen2 module is deprecated.  Use the
subprocess module." message. The module itself isn't used in fact, so
just removing it solves the problem.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agosend-email: remove debug trace
Erik Faye-Lund [Tue, 4 Aug 2009 21:57:34 +0000 (21:57 +0000)]
send-email: remove debug trace

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
15 years agogitweb: fix 'Use of uninitialized value' error in href()
Giuseppe Bilotta [Fri, 31 Jul 2009 06:48:49 +0000 (08:48 +0200)]
gitweb: fix 'Use of uninitialized value' error in href()

Equality between file_parent and file_name was being checked without a
preliminary check for existence of the parameters.

Fix by wrapping the equality check in appropriate if (defined ...),
rearranging the lines to prevent excessive length.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotechnical-docs: document tree-walking API
Stephen Boyd [Tue, 4 Aug 2009 04:13:21 +0000 (21:13 -0700)]
technical-docs: document tree-walking API

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix typos on pt_BR/gittutorial.txt translation
André Goddard Rosa [Fri, 31 Jul 2009 16:50:50 +0000 (13:50 -0300)]
Fix typos on pt_BR/gittutorial.txt translation

With extra fixes from Thadeu and Carlos as well.

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Carlos R. Mafra <crmafra2@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: git-send-email: correct statement about standard ports
Wesley J. Landaker [Fri, 31 Jul 2009 17:45:00 +0000 (11:45 -0600)]
Documentation: git-send-email: correct statement about standard ports

The current documentation states that servers typically listen on port
465 and calls this "ssmtp". While it's true that many mail servers use
port 465 for SSL smtp, this is non-standard, and hails from the days
before smtp and submission TLS support, that arrived in RFC2487 and
RFC3207. Port 465 is actually assigned by IANA for unrelated purposes,
and is mostly still used by mail servers today only to support Outlook
Express.

In any case, this patch helps the documentation better reflect both
standards and reality, while still helpfully mentioning ports numbers
that a user may wish to specify.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: git-send-email: fix submission port number
Wesley J. Landaker [Thu, 30 Jul 2009 23:08:53 +0000 (17:08 -0600)]
Documentation: git-send-email: fix submission port number

The current documentation confuses non-standard SSL smtp port 465 with
submission port 587 (RFC 4406). This patch just changes the referenced
number.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconfig: Keep inner whitespace verbatim
Björn Steinbrink [Thu, 30 Jul 2009 11:41:57 +0000 (13:41 +0200)]
config: Keep inner whitespace verbatim

Configuration values are expected to be quoted when they have leading or
trailing whitespace, but inner whitespace should be kept verbatim even if
the value is not quoted. This is already documented in git-config(1), but
the code caused inner whitespace to be collapsed to a single space,
breaking, for example, clones from a path that has two consecutive spaces
in it, as future fetches would only see a single space.

Reported-by: John te Bokkel <tanj.tanj@gmail.com>
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit fast-export: add --no-data option
Geoffrey Irving [Tue, 28 Jul 2009 02:20:22 +0000 (22:20 -0400)]
git fast-export: add --no-data option

When using git fast-export and git fast-import to rewrite the history
of a repository with large binary files, almost all of the time is
spent dealing with blobs.  This is extremely inefficient if all we want
to do is rewrite the commits and tree structure.  --no-data skips the
output of blobs and writes SHA-1s instead of marks, which provides a
massive speedup.

Signed-off-by: Geoffrey Irving <irving@naml.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoparse-opt: optionally show "--no-" option string
Johannes Schindelin [Mon, 27 Jul 2009 18:49:56 +0000 (20:49 +0200)]
parse-opt: optionally show "--no-" option string

It is usually better to have positive options, to avoid confusing double
negations.  However, sometimes it is desirable to show the negative option
in the help.

Introduce the flag PARSE_OPT_NEGHELP to do that.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTranslate the tutorial to Brazillian Portuguese
Thadeu Lima de Souza Cascardo [Mon, 29 Jun 2009 15:32:22 +0000 (12:32 -0300)]
Translate the tutorial to Brazillian Portuguese

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorequest-pull: optionally show a patch as well
Junio C Hamano [Mon, 27 Jul 2009 21:27:47 +0000 (14:27 -0700)]
request-pull: optionally show a patch as well

Allow git request-pull to append diff body into the pull request.

It's useful for small series of commits.

Tested-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'hv/cvsps-tests'
Junio C Hamano [Wed, 29 Jul 2009 17:39:57 +0000 (10:39 -0700)]
Merge branch 'hv/cvsps-tests'

* hv/cvsps-tests:
  t/t9600: remove exit after test_done
  cvsimport: extend testcase about patchset order to contain branches
  cvsimport: add test illustrating a bug in cvsps
  Add a test of "git cvsimport"'s handling of tags and branches
  Add some tests of git-cvsimport's handling of vendor branches
  Test contents of entire cvsimported "master" tree contents
  Use CVS's -f option if available (ignore user's ~/.cvsrc file)
  Start a library for cvsimport-related tests

15 years agoAdd a reminder test case for a merge with F/D transition
Alex Riesen [Mon, 11 May 2009 09:31:42 +0000 (11:31 +0200)]
Add a reminder test case for a merge with F/D transition

The problem is that if a file was replaced with a directory containing
another file with the same content and mode, an attempt to merge it
with a branch descended from a commit before this F->D transition will
cause merge-recursive to break. It breaks even if there were no
conflicting changes on that other branch.

Originally reported by Anders Melchiorsen.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoStart 1.6.5 cycle
Junio C Hamano [Wed, 29 Jul 2009 16:33:29 +0000 (09:33 -0700)]
Start 1.6.5 cycle

The next major release will be 1.6.5, hopefully with a shorter cycle
than the 1.6.4 cycle.  After that in 1.7.0 we can make potentially
backward incompatible changes if necessary.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.6.4 v1.6.4
Junio C Hamano [Wed, 29 Jul 2009 07:32:42 +0000 (00:32 -0700)]
GIT 1.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoSync with 1.6.3.4
Junio C Hamano [Wed, 29 Jul 2009 07:00:56 +0000 (00:00 -0700)]
Sync with 1.6.3.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGIT 1.6.3.4 v1.6.3.4
Junio C Hamano [Wed, 29 Jul 2009 06:52:58 +0000 (23:52 -0700)]
GIT 1.6.3.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconfig.txt: document add.ignore-errors
Stephen Boyd [Sun, 31 May 2009 05:08:02 +0000 (22:08 -0700)]
config.txt: document add.ignore-errors

Use the description of "--ignore-errors" from git-add.txt as
inspiration.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorequest-pull: allow ls-remote to notice remote.$nickname.uploadpack
Tom Grennan [Wed, 29 Jul 2009 01:30:02 +0000 (18:30 -0700)]
request-pull: allow ls-remote to notice remote.$nickname.uploadpack

The location to pull from should be converted from the configured nickname
to URL in the message, but ls-remote should be fed the nickname so that
the command uses remote.$nickname.* variables, most notably "uploadpack".

Signed-off-by: Tom Grennan <tgrennan@redback.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate the documentation of the raw diff output format
David Kågedal [Tue, 28 Jul 2009 08:32:18 +0000 (10:32 +0200)]
Update the documentation of the raw diff output format

This includes mentioning the initial hash output of diff-tree, and
changes the header to "raw output format" which is more descriptive.

Signed-off-by: David Kågedal <davidk@lysator.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-rerere.txt: Clarify ambiguity of the config variable
Michael J Gruber [Tue, 28 Jul 2009 14:42:15 +0000 (16:42 +0200)]
git-rerere.txt: Clarify ambiguity of the config variable

Use the less ambiguous
"set variable foo in order to enable bar"
rather than
"set variable foo to enable bar" which may trick users into
assuming that "enable" is a good value for "foo".

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agot9143: do not fail if Compress::Zlib is missing
Eric Wong [Sun, 26 Jul 2009 10:01:52 +0000 (03:01 -0700)]
t9143: do not fail if Compress::Zlib is missing

"git svn gc" will not compress unhandled.log files if
Compress::Zlib is missing.  However, leftover index files should
always be removed, so add a test for this behavior as well.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTrivial path quoting fixes in git-instaweb
Sean Estabrooks [Sat, 18 Jul 2009 16:45:44 +0000 (09:45 -0700)]
Trivial path quoting fixes in git-instaweb

Bodo Schlecht noticed that Instaweb didn't propely quote all
path instances in the Apache config file it generated.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'gp/maint-rebase-p-onto'
Junio C Hamano [Sun, 26 Jul 2009 18:24:13 +0000 (11:24 -0700)]
Merge branch 'gp/maint-rebase-p-onto'

* gp/maint-rebase-p-onto:
  Fix rebase -p --onto

15 years agoMerge branch 'en/fast-export'
Junio C Hamano [Sun, 26 Jul 2009 18:23:52 +0000 (11:23 -0700)]
Merge branch 'en/fast-export'

* en/fast-export:
  fast-export: Document the fact that git-rev-list arguments are accepted
  Add new fast-export testcases
  fast-export: Add a --tag-of-filtered-object option for newly dangling tags
  fast-export: Do parent rewriting to avoid dropping relevant commits
  fast-export: Make sure we show actual ref names instead of "(null)"
  fast-export: Omit tags that tag trees
  fast-export: Set revs.topo_order before calling setup_revisions

15 years agoGIT 1.6.4-rc3 v1.6.4-rc3
Junio C Hamano [Sun, 26 Jul 2009 07:04:50 +0000 (00:04 -0700)]
GIT 1.6.4-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation/config.txt: a variable can be defined on the section header line
Nanako Shiraishi [Sat, 25 Jul 2009 00:28:50 +0000 (09:28 +0900)]
Documentation/config.txt: a variable can be defined on the section header line

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Sun, 26 Jul 2009 05:54:03 +0000 (22:54 -0700)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git svn: make minimize URL more reliable over http(s)
  git svn: avoid escaping '/' when renaming/copying files
  t9142: stop httpd after the test
  git svn: the branch command no longer needs the full path
  git svn: revert default behavior for --minimize-url
  git svn: add gc command

15 years agogit svn: make minimize URL more reliable over http(s)
Eric Wong [Sat, 25 Jul 2009 20:14:16 +0000 (13:14 -0700)]
git svn: make minimize URL more reliable over http(s)

In addition to path-based restrictions, Subversion servers over
http(s) may have access controls implemented via the LimitExcept
directive in Apache.  In some cases, LimitExcept may be
(arguably) misconfigured to not allow REPORT requests while
allowing OPTIONS and PROPFIND.

This caused problems with our existing minimize_url logic that
only issued OPTIONS and PROPFIND requests when connecting and
using SVN::Ra::get_latest_revnum.  We now call SVN::Ra::get_log
if get_latest_revnum succeeds, resulting in a REPORT request
being sent.  This will increase our chances of tripping access
controls before we start attempting to fetch history.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agoDisable asciidoc 8.4.1+ semantics for `{plus}` and friends
Thomas Rast [Sat, 25 Jul 2009 12:06:50 +0000 (14:06 +0200)]
Disable asciidoc 8.4.1+ semantics for `{plus}` and friends

asciidoc 8.4.1 changed the semantics of inline backtick quoting so
that they disable parsing of inline constructs, i.e.,

  Input: `{plus}`
  Pre 8.4.1: +
  Post 8.4.1: {plus}

Fix this by defining the asciidoc attribute 'no-inline-literal'
(which, per the 8.4.1 changelog, is the toggle to return to the old
behaviour) when under ASCIIDOC8.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit svn: avoid escaping '/' when renaming/copying files
Eric Wong [Sat, 25 Jul 2009 09:29:28 +0000 (02:29 -0700)]
git svn: avoid escaping '/' when renaming/copying files

Timothy Schaeffer reported the following:
> Git-svn has been giving me the following error for some time
> when calling "git svn dcommit":
>
> RA layer request failed: PROPFIND request failed on
> '/svn/stf/branches/dev/sw%2Fdpemu%2Finclude%2FNetCnxn.h': PROPFIND of
> '/svn/stf/branches/dev/sw%2Fdpemu%2Finclude%2FNetCnxn.h': 302 Found
> (https://oursvnrepo.net) at /usr/local/libexec/git-core/git-svn line 508
>
> This only occurred when git detected a rename or copy.
>
> Following the lead into git-svn.perl,
> and noticing that some of the '/'s in the path were hex-encoded
> and some were not,
> I changed the regex used to find chars
> to hex-encode in the relative part of the path
> to exclude '/'.
> It works, so far.
> I have included a patch.

While this has previous not been a problem in my experience,
newer versions of SVN may be stricter and this does not
introduce regressions in t9115.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agot9142: stop httpd after the test
Eric Wong [Sat, 25 Jul 2009 09:11:39 +0000 (02:11 -0700)]
t9142: stop httpd after the test

Otherwise it would fail in subsequent runs if the same
SVN_HTTPD_PORT was used.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit svn: the branch command no longer needs the full path
Eric Wong [Sat, 25 Jul 2009 08:36:06 +0000 (01:36 -0700)]
git svn: the branch command no longer needs the full path

This was introduced in 0b2af457a49e3b00d47d556d5301934d27909db8
("Fix branch detection when repository root is inaccessible")
but reintroduced in the previous commit.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit svn: revert default behavior for --minimize-url
Eric Wong [Sat, 25 Jul 2009 07:00:50 +0000 (00:00 -0700)]
git svn: revert default behavior for --minimize-url

This reverts the --minimize-url behavior change that
appeared recently in commit 0b2af457a49e3b00d47d556d5301934d27909db8
("Fix branch detection when repository root is inaccessible").

However, we now allow the option to be turned off by allowing
"--no-minimize-url" so people with limited-access setups can
still take advantage of the fix in
0b2af457a49e3b00d47d556d5301934d27909db8.

Also document the behavior and default settings of minimize-url
in the manpage for the first time.

This introduces a temporary UI regression to allow t9141 to pass
that will be reverted (fixed) in the next commit.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit svn: add gc command
Robert Allan Zeh [Sun, 19 Jul 2009 23:00:52 +0000 (18:00 -0500)]
git svn: add gc command

Add a git svn gc command that gzips all unhandled.log files, and
removes all index files under .git/svn.

Signed-off-by: Robert Allan Zeh <robert.a.zeh@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit init: optionally allow a directory argument
Nanako Shiraishi [Fri, 24 Jul 2009 21:59:28 +0000 (06:59 +0900)]
git init: optionally allow a directory argument

When starting a new repository, I see my students often say

    % git init newrepo

and curse git.  They could say

    % mkdir newrepo; cd newrepo; git init

but allowing it as an obvious short-cut may be nicer.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Sat, 25 Jul 2009 09:16:25 +0000 (02:16 -0700)]
Merge branch 'maint'

* maint:
  t8005: Nobody writes Russian in shift_jis

Conflicts:
t/t8005-blame-i18n.sh

15 years agot8005: Nobody writes Russian in shift_jis
Junio C Hamano [Fri, 19 Jun 2009 02:18:37 +0000 (19:18 -0700)]
t8005: Nobody writes Russian in shift_jis

The second and third tests of this script expected that Russian strings
are converted between ISO-8859-5 and Shift_JIS in the "blame --porcelain"
format output correctly.

Sure, many platforms may convert between such a combination, but that is
only because one of the base character set of Shift_JIS, JIS X 0208,
defines codepoints for Russian characters (among others); I do not think
anybody uses Shift_JIS when seriously writing Russian, and it is perfectly
understandable if iconv() libraries on some platforms fail converting
between this combination, as it does not matter in reality.

This patch changes the test to verify Japanese strings are converted
correctly between EUC-JP and Shift_JIS in the same procedure.  The point
of the test is not about verifying the platform's iconv() library, but to
see if "git blame" makes correct iconv() library calls when it should.

We could instead use ISO-8859-5 and KOI8-R as the combination, because
they are both meant to represent Russian, in order to make this test
meaningful on more platforms, but we already use Shift_JIS vs EUC-JP
combinations to test other programs in our test suite, so this combination
is safer from the point of view of the portability.  Besides, I do not
read nor write Russian; sorry ;-)

This change allows tests to pass on my (friend's) Solaris 5.11 box.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Sat, 25 Jul 2009 08:31:53 +0000 (01:31 -0700)]
Merge branch 'maint'

* maint:
  Fix severe breakage in "git-apply --whitespace=fix"

15 years agoFix severe breakage in "git-apply --whitespace=fix"
Junio C Hamano [Sat, 25 Jul 2009 08:29:20 +0000 (01:29 -0700)]
Fix severe breakage in "git-apply --whitespace=fix"

735c674 (Trailing whitespace and no newline fix, 2009-07-22) completely
broke --whitespace=fix, causing it to lose all the empty lines in a patch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate release notes for 1.6.4
Junio C Hamano [Sat, 25 Jul 2009 07:51:21 +0000 (00:51 -0700)]
Update release notes for 1.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'js/maint-graft-unhide-true-parents'
Junio C Hamano [Sat, 25 Jul 2009 07:45:03 +0000 (00:45 -0700)]
Merge branch 'js/maint-graft-unhide-true-parents'

* js/maint-graft-unhide-true-parents:
  git repack: keep commits hidden by a graft
  Add a test showing that 'git repack' throws away grafted-away parents

Conflicts:
git-repack.sh

15 years agoMerge branch 'av/maint-config-reader'
Junio C Hamano [Sat, 25 Jul 2009 07:44:52 +0000 (00:44 -0700)]
Merge branch 'av/maint-config-reader'

* av/maint-config-reader:
  After renaming a section, print any trailing variable definitions
  Make section_name_match start on '[', and return the length on success

15 years agoMerge branch 'jk/maint-send-email-alias-loop'
Junio C Hamano [Sat, 25 Jul 2009 07:44:45 +0000 (00:44 -0700)]
Merge branch 'jk/maint-send-email-alias-loop'

* jk/maint-send-email-alias-loop:
  send-email: detect cycles in alias expansion

15 years agoAfter renaming a section, print any trailing variable definitions
Alex Vandiver [Fri, 24 Jul 2009 21:21:44 +0000 (17:21 -0400)]
After renaming a section, print any trailing variable definitions

Signed-off-by: Alex Vandiver <alex@chmrr.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMake section_name_match start on '[', and return the length on success
Alex Vandiver [Fri, 24 Jul 2009 21:21:43 +0000 (17:21 -0400)]
Make section_name_match start on '[', and return the length on success

Signed-off-by: Alex Vandiver <alex@chmrr.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agosend-email: detect cycles in alias expansion
Jeff King [Thu, 23 Jul 2009 11:09:29 +0000 (07:09 -0400)]
send-email: detect cycles in alias expansion

With the previous code, an alias cycle like:

  $ echo 'alias a b' >aliases
  $ echo 'alias b a' >aliases
  $ git config sendemail.aliasesfile aliases
  $ git config sendemail.aliasfiletype mutt

would put send-email into an infinite loop. This patch
detects the situation and complains to the user.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoShow the presence of untracked files in the bash prompt.
Daniel Trstenjak [Wed, 22 Jul 2009 08:31:34 +0000 (10:31 +0200)]
Show the presence of untracked files in the bash prompt.

Added the envvar GIT_PS1_SHOWUNTRACKEDFILES to 'git-completion.bash'.
When set to a nonempty value, then the char '%' will be shown next
to the branch name in the bash prompt.

Signed-off-by: Daniel Trstenjak <daniel.trstenjak@science-computing.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Fri, 24 Jul 2009 16:27:09 +0000 (09:27 -0700)]
Merge branch 'maint'

* maint:
  SunOS grep does not understand -C<n> nor -e
  Fix export_marks() error handling.
  git branch: clean up detached branch handling
  git branch: avoid unnecessary object lookups
  git branch: fix performance problem
  do_one_ref(): null_sha1 check is not about broken ref

Conflicts:
Makefile

15 years agoSunOS grep does not understand -C<n> nor -e
Junio C Hamano [Fri, 24 Jul 2009 05:30:07 +0000 (22:30 -0700)]
SunOS grep does not understand -C<n> nor -e

The first "grep -C1" test in t7002 does not pass on my SunOS-5.11-i86pc,
and that is not because our way to spawn external grep is broken, but
because the native grep does not understand -C<n>.

It turns out that Peff was also using this option himself because our
Makefile doesn't do that automatically.  Brandon Casey uses SUNWspro
compiler without having to set this, and it turns out that the compiler
does not define preprocessor macro __unix__ which made him always use the
built-in grep, never an external one.

Let's be more explicit and say that we do not use external grep on Suns.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix export_marks() error handling.
Matthias Andree [Fri, 24 Jul 2009 08:17:13 +0000 (10:17 +0200)]
Fix export_marks() error handling.

- Don't leak one FILE * on error per export_marks() call. Found with
  cppcheck and reported by Martin Ettl.

- Abort the potentially long for(;idnums.size;) loop on write errors.

- Record error if fprintf() fails for reasons not required to set the
  stream error indicator, such as ENOMEM.

- Add a trailing full-stop to error message when fopen() fails.

Signed-off-by: Matthias Andree <matthias.andree@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit repack: keep commits hidden by a graft
Johannes Schindelin [Thu, 23 Jul 2009 15:33:49 +0000 (17:33 +0200)]
git repack: keep commits hidden by a graft

When you have grafts that pretend that a given commit has different
parents than the ones recorded in the commit object, it is dangerous
to let 'git repack' remove those hidden parents, as you can easily
remove the graft and end up with a broken repository.

So let's play it safe and keep those parent objects and everything
that is reachable by them, in addition to the grafted parents.

As this behavior can only be triggered by git pack-objects, and as that
command handles duplicate parents gracefully, we do not bother to cull
duplicated parents that may result by using both true and grafted
parents.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoAdd a test showing that 'git repack' throws away grafted-away parents
Björn Steinbrink [Thu, 23 Jul 2009 15:33:45 +0000 (17:33 +0200)]
Add a test showing that 'git repack' throws away grafted-away parents

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit branch: clean up detached branch handling
Linus Torvalds [Thu, 23 Jul 2009 19:13:48 +0000 (12:13 -0700)]
git branch: clean up detached branch handling

Make the 'show detached branch info' a routine of its own.  And in the
process, avoid the object lookup that is unnecessary if the current
branch isn't detached.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit branch: avoid unnecessary object lookups
Linus Torvalds [Thu, 23 Jul 2009 19:05:34 +0000 (12:05 -0700)]
git branch: avoid unnecessary object lookups

They can be expensive in the cold-cache case, so don't bother looking up
the commits for all branches unless we really need them for some reason.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit branch: fix performance problem
Linus Torvalds [Thu, 23 Jul 2009 17:17:04 +0000 (10:17 -0700)]
git branch: fix performance problem

'git branch' looks at _all_ the refs, and verifies them.  Which means that
during cold-cache situations with a slow disk (and lots of tags, for
example) it can take several very annoying seconds (7.5s according to a
report by Carlos R.  Mafra).

This avoids most of it by simply doing the filtering before looking up
the commits, by using the "raw" version of for_each_ref.

Reported-by: Carlos R. Mafra <crmafra2@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit svn: fix shallow clone when upstream revision is too new
Eric Wong [Mon, 20 Jul 2009 09:06:24 +0000 (02:06 -0700)]
git svn: fix shallow clone when upstream revision is too new

Thanks to Ka-Hing Cheung for the initial bug report and patch:
> git-svn uses $ra->get_latest_revnum to find out the latest
> revision, but that can be problematic, because get_latest_revnum
> returns the latest revnum in the entire repository, not
> restricted by whatever URL you used to construct $ra. So if you
> do git svn clone -r HEAD svn://blah/blah/trunk, it won't work if
> the latest checkin is in one of the branches (it will try to
> fetch a rev that doesn't exist in trunk, making the clone
> useless).

Relying on SVN::Core::INVALID_REVNUM (-1) as the "start"
argument to SVN::Ra::get_log() proved unreliable with http(s)
URLs so the result of SVN::Ra::get_latest_revnum() is used as
the "start" argument instead.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agodo_one_ref(): null_sha1 check is not about broken ref
Junio C Hamano [Thu, 23 Jul 2009 06:07:05 +0000 (23:07 -0700)]
do_one_ref(): null_sha1 check is not about broken ref

f8948e2 (remote prune: warn dangling symrefs, 2009-02-08) introduced a
more dangerous variant of for_each_ref() family that skips the check for
dangling refs, but it also made another unrelated check optional by
mistake.

The check to see if a ref points at 0{40} is not about brokenness, but is
about a possible future plan to represent a deleted ref by writing 40 "0"
in a loose ref when there is a stale version of the same ref already in
.git/packed-refs, so that we can implement deletion of a ref without
having to rewrite the packed refs file excluding the ref being deleted.

This check has to live outside of the conditional.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconfigure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing v1.6.4-rc2
Brandon Casey [Wed, 22 Jul 2009 22:20:53 +0000 (17:20 -0500)]
configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing

The empty assignment NEEDS_SSL_WITH_CRYPTO= was mistakenly paired with the
assignment NEEDS_SSL_WITH_CRYPTO=YesPlease in the "action-if-found"
parameter of the AC_CHECK_LIB macro.  The empty assignment was intended for
the "action-if-not-found" section, since in that case, the necessary sha1
hash function was not found and the internal sha1 implementation will be
used instead.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agojanitor: useless checks before free
Pierre Habouzit [Wed, 22 Jul 2009 21:51:55 +0000 (23:51 +0200)]
janitor: useless checks before free

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agojanitor: add DIV_ROUND_UP and use it.
Pierre Habouzit [Wed, 22 Jul 2009 21:34:35 +0000 (23:34 +0200)]
janitor: add DIV_ROUND_UP and use it.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agorefactor: use bitsizeof() instead of 8 * sizeof()
Pierre Habouzit [Wed, 22 Jul 2009 21:34:34 +0000 (23:34 +0200)]
refactor: use bitsizeof() instead of 8 * sizeof()

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agojanitor: use NULL and not 0 for pointers.
Pierre Habouzit [Wed, 22 Jul 2009 21:34:33 +0000 (23:34 +0200)]
janitor: use NULL and not 0 for pointers.

Brought to you thanks to coccinelle:

    ---8<----
    @@
    expression *E;
    @@
    (
      E ==
    - 0
    + NULL
    |
      E !=
    - 0
    + NULL
    |
      E =
    - 0
    + NULL
    )

    @@
    identifier f;
    type T;
    @@
    T *f(...) {
    <...
    - return 0;
    + return NULL;
    ...>
    }
    --->8----

There are a lot more hits in compat/nedmallox and compat/regex but these
are borrowed code we rather do not want to maintain our own forks for,
and this patch refrains from touching them.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit stash: modernize use of "dashed" git-XXX calls
Martin Koegler [Wed, 22 Jul 2009 05:30:58 +0000 (07:30 +0200)]
git stash: modernize use of "dashed" git-XXX calls

Replace remaining git-XXX calls with git XXX.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Acked-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoImprove doc for format-patch threading options.
Yann Dirson [Wed, 22 Jul 2009 21:39:31 +0000 (23:39 +0200)]
Improve doc for format-patch threading options.

This hopefully makes the relationship between threading options of
format-patch and send-email easier to grasp.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoList send-email config options in config.txt.
Yann Dirson [Wed, 22 Jul 2009 21:39:30 +0000 (23:39 +0200)]
List send-email config options in config.txt.

Also mention deprecated aliases that do not appear in the send-email
manpage.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconfigure.ac: rework/fix the NEEDS_RESOLV and NEEDS_LIBGEN tests
Brandon Casey [Tue, 21 Jul 2009 20:23:06 +0000 (15:23 -0500)]
configure.ac: rework/fix the NEEDS_RESOLV and NEEDS_LIBGEN tests

The "action" parameters for these two tests were supplied incorrectly for
the way the tests were implemented.  The tests check whether a program
which calls hstrerror() or basename() successfully links when -lresolv or
-lgen are used, respectively.  A successful linking would result in
NEEDS_RESOLV or NEEDS_LIBGEN being unset, and failure would result in
setting the respective variable.

Aside from that issue, the tests did not handle the case where neither
library was necessary for accessing the functions in question.  So solve
both of these issues by re-working the two tests so that their form is like
the NEEDS_SOCKET test which attempts to link with just the c library, and
if it fails then assumes that the additional library is necessary and sets
the appropriate variable.

Also an entry in the config.mak.in file is necessary for the NEEDS_LIBGEN
variable to appear in the config.mak.autogen file with the value assigned
by the configure script.  Without it, the generated shell script would
contain a snippet like this:

   for ac_lib in ; do
      ...

which is incorrect.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Thu, 23 Jul 2009 04:56:46 +0000 (21:56 -0700)]
Merge branch 'maint'

* maint:
  Trailing whitespace and no newline fix
  diff --cc: a lost line at the beginning of the file is shown incorrectly
  combine-diff.c: fix performance problem when folding common deleted lines

15 years agoTrailing whitespace and no newline fix
SZEDER Gábor [Thu, 23 Jul 2009 00:24:38 +0000 (19:24 -0500)]
Trailing whitespace and no newline fix

If a patch adds a new line to the end of a file and this line ends with
one trailing whitespace character and has no newline, then
'--whitespace=fix' currently does not remove that trailing whitespace.

This patch fixes this by removing the check for trailing whitespace at
the end of the line at a hardcoded offset which does not take the
eventual absence of newline into account.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodiff --cc: a lost line at the beginning of the file is shown incorrectly
Junio C Hamano [Wed, 22 Jul 2009 21:48:29 +0000 (14:48 -0700)]
diff --cc: a lost line at the beginning of the file is shown incorrectly

When combine-diff inspected the diff from one parent to the merge result,
it misinterpreted a header in the form @@ -l,k +0,0 @@.

This hunk header means that K lines were removed from the beginning of the
file, so the lost lines must be queued to the sline that represents the
first line of the merge result, but we incremented our pointer incorrectly
and ended up queuing it to the second line, which in turn made the lossage
appear _after_ the first line.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocombine-diff.c: fix performance problem when folding common deleted lines
Junio C Hamano [Wed, 22 Jul 2009 21:48:28 +0000 (14:48 -0700)]
combine-diff.c: fix performance problem when folding common deleted lines

For a deleted line in a patch with the parent we are looking at, the
append_lost() function finds the same line among a run of lines that were
deleted from the same location by patches from parents we previously
checked.  This is so that patches with two parents

    @@ -1,4 +1,3 @@    @@ -1,4 +1,3 @@
     one                   one
    -two                  -two
     three                 three
    -quatro               -fyra
    +four                 +four

can be coalesced into this sequence, reusing one line that describes the
removal of "two" for both parents.

   @@@ -1,4 -1,4 +1,3 @@@
     one
   --two
     three
   - quatro
    -frya
   ++four

While reading the second patch (that removes "two" and then "fyra"), after
finding where removal of the "two" matches, we need to find existing
removal of "fyra" (if exists) in the removal list, but the match has to
happen after all the existing matches (in this case "two").  The code used
a naïve O(n^2) algorithm to compute this by scanning the whole removal
list over and over again.

This patch remembers where the next scan should be started in the existing
removal list to avoid this.

Noticed by Linus Torvalds.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix rebase -p --onto
Greg Price [Wed, 22 Jul 2009 16:38:58 +0000 (12:38 -0400)]
Fix rebase -p --onto

In a rebase with --onto, the correct test for whether we can skip
rewriting a commit is if it is already on top of $ONTO, not $UPSTREAM.
Without --onto, this distinction does not exist and the behavior does
not change.

In a situation with two merged branches on a common base X:

 X---o---o---o---M
  \             /
   x---x---x---x

 Y

if we try to move the branches from their base on X to be based on Y,
so as to get

 X

 Y---o'--o'--o'--M'
  \             /
   x'--x'--x'--x'

then we fail.  The command `git rebase -p --onto Y X M` moves only the
first-parent chain, like so:

 X
  \
   x---x---x---x
                \
 Y---o'--o'--o'--M'

because it mistakenly drops the other branch(es) x---x---x---x from
the TODO file.  This tests and fixes this behavior.

Signed-off-by: Greg Price <price@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit svn: fix reparenting when ugly http(s) URLs are used
Eric Wong [Mon, 20 Jul 2009 05:08:45 +0000 (22:08 -0700)]
git svn: fix reparenting when ugly http(s) URLs are used

Mishandling of http(s) in need of escaping was causing
t9118-git-svn-funky-branch-names to fail when SVN_HTTPD_PORT
 was defined.

This bug was exposed in (but not caused by)
commit 0b2af457a49e3b00d47d556d5301934d27909db8
(Fix branch detection when repository root is inaccessible)

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit svn: rename tests that had conflicting numbers
Eric Wong [Sun, 19 Jul 2009 10:08:27 +0000 (03:08 -0700)]
git svn: rename tests that had conflicting numbers

Some unrelated tests were developed simultaneously and resulted
in test numbers conflicting.  To avoid difficulty when referring
to tests via the "tXXXX" convention, rename the newer tests.

Suggested by Marc Branchaud.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agoshow: add space between multiple items
Jeff King [Sat, 18 Jul 2009 10:14:37 +0000 (06:14 -0400)]
show: add space between multiple items

When showing an annotated tag, "git show" will always
display the pointed-to object. However, it didn't separate
the two with whitespace, making it more difficult to notice
where the new object started. For example:

  $ git tag -m 'my message' foo
  $ git show foo
  tag foo
  Tagger: Jeff King <peff@peff.net>
  Date:   Fri Jul 17 18:46:25 2009 -0400

  my message
  commit 41cabf8fed2694ba33e01d64f9094f2fc5e5805a
  Author: Jeff King <peff@peff.net>
  Date:   Thu Jul 16 17:31:34 2009 -0400
  ...

This patch respects and sets the rev.shown_one member to
prepend a blank line before showing a second item. We use
this member of rev_info instead of a local flag, because the
log_tree_commit we call into for showing commits already
respects and sets that flag. Meaning that everything will be
spaced properly if you intermix commits and tags, like:

  $ git show v1.6.3 v1.6.2 HEAD

In that case, a single blank line will separate the first
tag, the commit it points to, the second tag, the commit
that one points to, and the final commit.

While we're at it, let's also support trees, so that even
something as crazy as

  $ git show HEAD^{tree} HEAD~1^{tree} HEAD

will also be spaced in an easy-to-read way. However, we
intentionally do _not_ insert blank lines for blobs, so
that specifying multiple blobs gives a strict concatenation.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoshow: suppress extra newline when showing annotated tag
Jeff King [Fri, 17 Jul 2009 23:18:34 +0000 (19:18 -0400)]
show: suppress extra newline when showing annotated tag

When showing a tag, our header parsing finishes with the
offset pointing to the newline separating the tag header
from the tag body. This means that the printed body will
always start with a newline.

However, we also add an extra newline when printing the
tagger information. This leads to an ugly double-newline:

    $ git show v1.6.3
    tag v1.6.3
    Tagger: Junio C Hamano <gitster@pobox.com>
    Date:   Wed May 6 18:16:47 2009 -0700

    GIT 1.6.3
    -----BEGIN PGP SIGNATURE-----
    ...

This patch removes the extra newline from the end of the
tagger headers. This is a better solution than suppressing
the separator newline, because it retains the behavior for
tags which have no tagger. E.g., "git show v0.99" will
continue to look like:

      $ git show v0.99
      tag v0.99

      Test-release for wider distribution.
      ...

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopull: support rebased upstream + fetch + pull --rebase
Santi Béjar [Sun, 19 Jul 2009 07:45:16 +0000 (09:45 +0200)]
pull: support rebased upstream + fetch + pull --rebase

You cannot do a "git pull --rebase" with a rebased upstream, if you have
already run "git fetch".  Try to behave as if the "git fetch" was not run.

In other words, find the fork point of the current branch, where
the tip of upstream branch used to be, and use it as the upstream
parameter of "git rebase".

This patch computes the fork point by walking the reflog to find the first
commit which is an ancestor of the current branch.  Maybe there are
smarter ways to compute it, but this is a straight forward implementation.

Signed-off-by: Santi Béjar <santi@agolina.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>