Commit Graph

6940 Commits

Author SHA1 Message Date
Junio C Hamano
5edab06e04 Merge branch 'lj/refs' into next
* lj/refs:
  git-revert with conflicts to behave as git-merge with conflicts
2006-10-17 00:17:20 -07:00
Junio C Hamano
d588317421 Merge branch 'master' into next
* master:
  Fix hash function in xdiff library
2006-10-16 23:25:37 -07:00
Junio C Hamano
3453f862e1 Merge branch 'maint'
* maint:
  Fix hash function in xdiff library
2006-10-16 21:58:54 -07:00
Linus Torvalds
9de0834663 Fix hash function in xdiff library
Jim Mayering noticed that xdiff library took insanely long time
when comparing files with many identical lines.

This was because the hash function used in the library is broken
on 64-bit architectures and caused too many collisions.

http://thread.gmane.org/gmane.comp.version-control.git/28962/focus=28994

Acked-by: Davide Libenzi <davidel@xmaliserver.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
v1.4.2.4
2006-10-16 21:27:44 -07:00
Junio C Hamano
32bf65a74c Merge branch 'master' into next
* master:
  svnimport: Fix broken tags being generated
  Replace open-coded version of hash_sha1_file()
  Make write_sha1_file_prepare() void
2006-10-15 23:49:27 -07:00
Luben Tuikov
a9cb3c6ecb git-revert with conflicts to behave as git-merge with conflicts
In a busy project, reverting a commit almost always results
in a conflict between one or more files (depending on the
commit being reverted).  It is useful to record this
conflict in the commit-to-be message of the resulting commit
(after the resolve).  The process now becomes:

git-revert <SHA-1>
<git complains and prints failed automatic>
<user manually resolves>
git-update-index <resolved files>
git-commit -s

And the commit message is now a merge of the revert commit
message and the conflict commit message, giving the user a
chance to edit it or add more information:

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-15 23:06:31 -07:00
Petr Baudis
b32db4d0fa svnimport: Fix broken tags being generated
Currently git-svnimport generates broken tags missing the timespec in the
'tagger' line. This is a random stab at a minimal fix.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-15 22:36:35 -07:00
Rene Scharfe
7cfb5f367e Replace open-coded version of hash_sha1_file()
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-15 12:35:25 -07:00
Rene Scharfe
972a915583 Make write_sha1_file_prepare() void
Move file name generation from write_sha1_file_prepare() to the one
caller that cares and make it a void function.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-15 12:35:07 -07:00
Junio C Hamano
46524e5101 Merge branch 'jc/pack' into next
* jc/pack:
  Revert "pack-objects: use of version 3 delta is now optional."
2006-10-15 12:31:32 -07:00
Junio C Hamano
69a4752063 Revert "pack-objects: use of version 3 delta is now optional."
This reverts commit 394737eb42.

Saving a few bytes per every 64kB of delta copied is not worth,
when compared with the cost of backward compatibility worries.
2006-10-15 12:28:58 -07:00
Junio C Hamano
b01b52f089 Merge branch 'jc/web' into next
* jc/web:
  gitweb: use for-each-ref to show the latest activity across branches
2006-10-15 03:29:32 -07:00
Junio C Hamano
63e02a1be3 gitweb: use for-each-ref to show the latest activity across branches
The project list page shows last change from the HEAD branch but
often people would want to view activity on any branch.

Unfortunately that is fairly expensive without the core-side
support.  for-each-ref was invented exactly for that.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-15 03:29:09 -07:00
Junio C Hamano
d7e8cf40c7 Merge branch 'jc/pack' into next
* jc/pack:
  pack-objects: use of version 3 delta is now optional.
2006-10-15 01:26:56 -07:00
Junio C Hamano
394737eb42 pack-objects: use of version 3 delta is now optional.
This introduces a new configuration item, pack.deltaversion, to
control whether pack-objects is allowed to use version 3 delta.
By default, we keep generating version 2 delta (and version 2
packfile format) to be compatible with git earlier than v1.2.0.

This configuration affects the command in the following ways:

 - the resulting packfile will have the specified version;

 - when generating delta, larger copies are allowed only when
   deltaversion is 3;

 - the logic to reuse delta from existing packs refuses to reuse
   delta from packs that uses delta version 3 when the
   configuration is set to 2.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-15 01:24:16 -07:00
Junio C Hamano
dfd65bfc89 Merge branch 'master' into next
* master:
  Revert "move pack creation to version 3"
2006-10-15 00:46:36 -07:00
Junio C Hamano
29f049a0c2 Revert "move pack creation to version 3"
This reverts commit 16854571aa.
Git as recent as v1.1.6 do not understand version 3 delta.

v1.2.0 is Ok and I personally would say it is old enough, but
the improvement between version 2 and version 3 delta is not
bit enough to justify breaking older clients.

We should resurrect this later, but when we do so we shold
make it conditional.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 23:38:01 -07:00
Junio C Hamano
a5ce7bd987 Merge branch 'master' into next
* master:
  clone: the given repository dir should be relative to $PWD
  cvsserver: fix "cvs diff" in a subdirectory
  cvsserver: Show correct letters for modified, removed and added files
  git-svn: reduce memory usage for large commits
  Fix tracing when GIT_TRACE is set to an empty string.
  Make write_sha1_file_prepare() static
  Add hash_sha1_file()
  git-svn: fix commits over svn+ssh://
2006-10-14 18:25:47 -07:00
Junio C Hamano
0a246571d4 Merge branch 'jc/http'
* jc/http:
  Add WEBDAV timeout to http-fetch.
v1.4.3-rc3
2006-10-14 18:25:28 -07:00
Yasushi SHOJI
ced78b3907 clone: the given repository dir should be relative to $PWD
the repository argument for git-clone should be relative to $PWD
instead of the given target directory.  The old behavior gave us
surprising success and you need a few minute to know why it worked.

GIT_DIR is already exported so no need to cd into $D. And this makes
$PWD for git-fetch-pack, which is the actual command to take the given
repository dir, the same as git-clone.

Signed-off-by: Yasushi SHOJI <yashi@atmark-techno.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 18:22:04 -07:00
Johannes Schindelin
d988b82232 cvsserver: fix "cvs diff" in a subdirectory
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 18:19:13 -07:00
Johannes Schindelin
0a7a9a12d6 cvsserver: Show correct letters for modified, removed and added files
Earlier, cvsserver showed always an 'U', sometimes even without a space
between the 'U' and the name. Now, the correct letter is shown, with a
space.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 18:19:12 -07:00
Eric Wong
f7197dff15 git-svn: reduce memory usage for large commits
apply_textdelta and send_stream can use a separate pool from the
rest of the editor interface, so we'll use a separate SVN::Pool
for them and clear the pool after each file is sent to SVN.

This drastically reduces memory usage per-changeset committed,
and makes large commits (and initial imports) of several
thousand files possible.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 17:38:52 -07:00
Christian Couder
6844fc806a Fix tracing when GIT_TRACE is set to an empty string.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 12:07:05 -07:00
Rene Scharfe
8f9777801d Make write_sha1_file_prepare() static
There are no callers of write_sha1_file_prepare() left outside of
sha1_file.c, so make it static.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 11:49:59 -07:00
Rene Scharfe
abdc3fc842 Add hash_sha1_file()
Most callers of write_sha1_file_prepare() are only interested in the
resulting hash but don't care about the returned file name or the header.
This patch adds a simple wrapper named hash_sha1_file() which does just
that, and converts potential callers.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 11:49:52 -07:00
Eric Wong
ce91fc6eb9 git-svn: fix commits over svn+ssh://
Once a get_commit_editor has been called from an SVN session, RA
layer operations are not allowed (well, unless you're using
file:// or http(s)://).  So we'll pass an alternate SVN::Ra
object to our editor object for running 'check-path'.

This should fix commits over svnserve (svn:// without ssh, too).

Closes Debian bug #392702, thanks to Pierre Habouzit for
reporting the bug.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-14 11:48:33 -07:00
Junio C Hamano
195ab887c9 Merge branch 'np/pack' into next
* np/pack:
  git-repack: repo.usedeltabaseoffset
  pack-objects: document --delta-base-offset option
2006-10-13 21:40:22 -07:00
Junio C Hamano
0c1f563bff Merge branch 'jc/diff-numstat' into next
* jc/diff-numstat:
  diff --numstat
  t4015: work-around here document problem on Cygwin.
2006-10-13 21:38:42 -07:00
Junio C Hamano
74e2abe5b7 diff --numstat
[jc: with documentation from Jakub]

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-13 21:37:10 -07:00
Junio C Hamano
b6945f570a git-repack: repo.usedeltabaseoffset
When configuration variable `repack.UseDeltaBaseOffset` is set
for the repository, the command passes `--delta-base-offset`
option to `git-pack-objects`; this typically results in slightly
smaller packs, but the generated packs are incompatible with
versions of git older than (and including) v1.4.3.

We will make it default to true sometime in the future, but not
for a while.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-13 21:28:58 -07:00
Junio C Hamano
4035b46e12 t4015: work-around here document problem on Cygwin.
Signed-off-by: Junio C Hamano <junio@twinsun.com>
2006-10-13 14:21:22 -07:00
Junio C Hamano
51caf0f982 Merge branch 'master' into next
* master:
  Documentation: add missing second colons and remove a typo
  diff: fix 2 whitespace issues
  apply --numstat -z: line termination fix.
2006-10-12 09:43:15 -07:00
Rene Scharfe
23bed43d0c Documentation: add missing second colons and remove a typo
It takes two colons to mark text as item label.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-12 09:42:36 -07:00
Johannes Schindelin
2344d47fba diff: fix 2 whitespace issues
When whitespace or whitespace change was ignored, the function
xdl_recmatch() returned memcmp() style differences, which is wrong,
since it should return 0 on non-match.

Also, there were three horrible off-by-one bugs, even leading to wrong
hashes in the whitespace special handling.

The issue was noticed by Ray Lehtiniemi.

For good measure, this commit adds a test.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-12 09:30:14 -07:00
Junio C Hamano
854de5a534 apply --numstat -z: line termination fix.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-12 02:57:39 -07:00
Junio C Hamano
dce354602a Merge branch 'jc/web-blame' into next
* jc/web-blame:
  gitweb: spell "blame --porcelain" with -p
2006-10-12 00:47:40 -07:00
Junio C Hamano
48fd688ab0 gitweb: spell "blame --porcelain" with -p
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-12 00:47:03 -07:00
Junio C Hamano
66d0ff1bd3 Merge branch 'jc/blame' into jc/web-blame
* jc/blame:
  blame: Document and add help text for -f, -n, and -p
  Remove git-annotate.perl and create a builtin-alias for git-blame
2006-10-12 00:46:06 -07:00
Junio C Hamano
a03b2e5fc4 Merge branch 'jc/blame' into next
* jc/blame:
  blame: Document and add help text for -f, -n, and -p
2006-10-12 00:45:53 -07:00
Junio C Hamano
b24642b2f2 blame: Document and add help text for -f, -n, and -p
New options --show-name, --show-number and --porcelain were not
documented.  Also add -p as a short-hand for --porcelain for
consistency.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-12 00:44:27 -07:00
Junio C Hamano
6518d0d64a Merge branch 'master' into next
* master:
  git-svn: add a message encouraging use of SVN::* libraries
  commit: fix a segfault when displaying a commit with unreachable parents
  git-svn: -h(elp) message formatting fixes
  Documentation/git-svn: document some of the newer features
  git-svn: log command fixes
  git-svn: multi-init saves and reuses --tags and --branches arguments
  atomic write for sideband remote messages
2006-10-11 20:26:13 -07:00
Junio C Hamano
03838a438d Merge branch 'mw/pathinfo' into next
* mw/pathinfo:
  gitweb: Fix search form when PATH_INFO is enabled
2006-10-11 20:26:05 -07:00
Eric Wong
83e9940a5e git-svn: add a message encouraging use of SVN::* libraries
I'm using svn 1.4.0-4 in Debian unstable and apparently there's
a regression on the SVN side that prevents a symlink from
becoming a regular file (which git supports, of course).

It's not a noticeable regression for most people, but this broke
the full-svn-tests target in t/Makefile for me.

The SVN::* Perl libraries seem to have matured and improved over
the past year, and git-svn has supported them for several months
now, so with that I encourage all users to start using the
SVN::* Perl libraries with git-svn.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 20:19:49 -07:00
Eric Wong
14763e7bda commit: fix a segfault when displaying a commit with unreachable parents
I was running git show on various commits found by fsck-objects
when I found this bug.  Since find_unique_abbrev() cannot find
an abbreviation for an object not in the database, it will
return NULL, which is bad to run strlen() on.  So instead, we'll
just display the unabbreviated sha1 that we referenced in the
commit.

I'm not sure that this is the best 'fix' for it because the
commit I was trying to show was broken, but I don't think a
program should segfault even if the user tries to do something
stupid.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 18:10:38 -07:00
Eric Wong
b203b769f2 git-svn: -h(elp) message formatting fixes
'graft-branches' is slightly longer than the rest of the
commands, so the text was squished together in the formatted
output.  This patch just adds some more whitespace to make
the text look more pleasant.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 15:24:18 -07:00
Eric Wong
e8f5d9081c Documentation/git-svn: document some of the newer features
I've forgotten to document many of the features added along the
way in the manpages.  This fills in some holes in the
documentation and adds updates some outdated information.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 15:24:15 -07:00
Petr Baudis
34c06118ed gitweb: Fix search form when PATH_INFO is enabled
Currently that was broken. Ideal fix would make the search form use
PATH_INFO too, but it's just one insignificant place so it's no big deal if
we don't for now... This at least makes it work.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 14:42:22 -07:00
Eric Wong
74a31a100a git-svn: log command fixes
Change the --verbose flag to more closely match svn.  I was
somehow under the impression that --summary included --raw diff
output, but I was wrong.  We now pass -r --raw --name-status as
arguments if passed -v/--verbose.

-r (recursive) is passed by default, since users usually want
it, and accepting it causes difficulty with the -r<revision>
option used by svn users.  A --non-recursive switch has been
added to disable this.

Of course, --summary, --raw, -p and any other git-log options
can still be passed directly (without --name-status).

Also, several warnings about referencing undefined variables
have been fixed.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 14:41:13 -07:00
Eric Wong
c35b96e785 git-svn: multi-init saves and reuses --tags and --branches arguments
This should make it much easier to track newly added tags and
branches.  Re-running multi-init without command-line arguments
should now detect new-tags and branches.

--trunk shouldn't change often, but running multi-init on it
is now idempotent.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-10-11 14:41:11 -07:00