Commit Graph

4221 Commits

Author SHA1 Message Date
Martin Langhoff
cdb6760e6f cvsserver: better error messages
We now have different error messages when the repo is not found vs repo is
not configured to allow gitcvs. Should help users during initial checkouts.

Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 22:28:04 -08:00
Martin Langhoff
6be32d4791 cvsserver: nested directory creation fixups for Eclipse clients
To create nested directories without (or before) sending file entries
is rather tricky. Most clients just work. Eclipse, however, expects
a very specific sequence of events. With this patch, cvsserver meets
those expectations.

Note: we may want to reuse prepdir() in req_update -- should move it
outside of req_co. Right now prepdir() is tied to how req_co() works.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 21:37:31 -08:00
Junio C Hamano
be972922d0 Merge branch 'maint'
* maint:
  tar-tree: file/dirmode fix.
2006-03-03 21:36:52 -08:00
Junio C Hamano
473d404b53 tar-tree: file/dirmode fix.
This fixes two bugs introduced when we switched to generic tree
traversal code.

 (1) directory mode recorded silently became 0755, not 0777

 (2) if passed a tree object (not a commit), it emitted an
     alarming error message (but proceeded anyway).

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 21:36:38 -08:00
Junio C Hamano
fe041ad68d Merge branch 'tl/anno' into next
* tl/anno:
  annotate should number lines starting with 1
  contrib/git-svn: fix a copied-tree bug in an overzealous assertion
  show-branch --topics: omit more uninteresting commits.
  workaround fat/ntfs deficiencies for t3600-rm.sh (git-rm)
  git-mv: fix moves into a subdir from outside
  send-email: accept --no-signed-off-by-cc as the documentation states
  contrib/git-svn: better documenting of CLI switches
  contrib/git-svn: add --id/-i=$GIT_SVN_ID command-line switch
  contrib/git-svn: avoid re-reading the repository uuid, it never changes
  contrib/git-svn: create a more recent master if one does not exist
  contrib/git-svn: cleanup option parsing
  contrib/git-svn: allow --authors-file to be specified
  contrib/git-svn: strip 'git-svn-id:' when commiting to SVN
  contrib/git-svn: several small bug fixes and changes
  contrib/git-svn: add -b/--branch switch for branch detection
  Prevent --index-info from ignoring -z.
  manpages: insert two missing [verse] markers for multi-line SYNOPSIS
  gitview: pass the missing argument _show_clicked_cb.
  Fix test case for some sed
  git-branch: add -r switch to list refs/remotes/*
2006-03-03 15:09:17 -08:00
Luck, Tony
c6d4217ebc annotate should number lines starting with 1
C programmers are well used to counting from zero, but every
other text file tool starts counting from 1.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 15:09:04 -08:00
Eric Wong
ce4c8b24a1 contrib/git-svn: fix a copied-tree bug in an overzealous assertion
I thought passing --stop-on-copy to svn would save us from all
the trouble svn-arch-mirror had with directory (project) copies.
I was wrong, there was one thing I overlooked.

If a tree was moved from /foo/trunk to /bar/foo/trunk with no
other changes in r10, but the last change was done in r5, the
Last Changed Rev (from svn info) in /bar/foo/trunk will still be
r5, even though the copy in the repository didn't exist until
r10.

Now, if we ever detect that the Last Changed Rev isn't what
we're expecting, we'll run svn diff and only croak if there are
differences between them.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 15:07:12 -08:00
Junio C Hamano
f794c23466 show-branch --topics: omit more uninteresting commits.
When inspecting contents of topic branches for yet-to-be-merged
commits, a commit that is in the release/master branch is
uninteresting.  Previous round still showed them, especially,
the ones before a topic branch that was forked from the
release/master later than other topic branches.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 14:34:40 -08:00
Alex Riesen
d51fac5310 workaround fat/ntfs deficiencies for t3600-rm.sh (git-rm)
Signed-off-by: Alex Riesen <ariesen@harmanbecker.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:28:33 -08:00
Josef Weidendorfer
90924d55c5 git-mv: fix moves into a subdir from outside
git-mv needs to be run from the base directory so that
the check if a file is under revision also covers files
outside of a subdirectory. Previously, e.g. in the git repo,

  cd Documentation; git-mv ../README .

produced the error

  Error: '../README' not under version control

The test is extended for this case; it previously only tested
one direction.

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:28:28 -08:00
Eric Wong
8e69b31e0d send-email: accept --no-signed-off-by-cc as the documentation states
--no-signed-off-cc is still supported, for backwards compatibility

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:28:12 -08:00
Eric Wong
448c81b495 contrib/git-svn: better documenting of CLI switches
Also, fix a asciidoc formatting error

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:30 -08:00
Eric Wong
6f0783cf94 contrib/git-svn: add --id/-i=$GIT_SVN_ID command-line switch
I ended up using GIT_SVN_ID far more than I ever thought I
would.  Typing less is good.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:29 -08:00
Eric Wong
1ca72aef45 contrib/git-svn: avoid re-reading the repository uuid, it never changes
If it does change, we're screwed anyways as SVN will refuse to
commit or update.  We also never access more than one SVN
repository per-invocation, so we can store it as a global, too.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:27 -08:00
Eric Wong
7f60b22860 contrib/git-svn: create a more recent master if one does not exist
In a new repository, the initial fetch creates a master branch
if one does not exist so HEAD has something to point to.

It now creates a master at the end of the initial fetch run,
pointing to the latest revision.  Previously it pointed to the
first revision imported, which is generally less useful.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:25 -08:00
Eric Wong
eeb0abe047 contrib/git-svn: cleanup option parsing
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:22 -08:00
Eric Wong
a9612be245 contrib/git-svn: allow --authors-file to be specified
Syntax is compatible with git-svnimport and git-cvsimport:

	normalperson = Eric Wong <normalperson@yhbt.net>

If this option is specified and git-svn encounters an SVN
committer name that it cannot parse, it git-svn will abort.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:20 -08:00
Eric Wong
df746c5a81 contrib/git-svn: strip 'git-svn-id:' when commiting to SVN
We regenerate and use git-svn-id: whenever we fetch or otherwise
commit to remotes/git-svn.  We don't actually know what revision
number we'll commit to SVN at commit time, so this is useless.
It won't throw off things like 'rebuild', though, which knows to
only use the last instance of git-svn-id: in a log message

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:18 -08:00
Eric Wong
ac8e0b910c contrib/git-svn: several small bug fixes and changes
* Fixed manually-edited commit messages not going to
   remotes/git-svn on sequential commits after the sequential
   commit optimization.
 * format help correctly after adding 'show-ignore'
 * sha1_short regexp matches down to 4 hex characters
   (from git-rev-parse --short documentation)
 * Print the first line of the commit message when we commit to
   SVN next to the sha1.
 * Document 'T' (type change) in the comments

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:14 -08:00
Eric Wong
69f0d91e49 contrib/git-svn: add -b/--branch switch for branch detection
I've said I don't like branches in Subversion, and I still don't.
This is a bit more flexible, though, as the argument for -b is any
arbitrary git head/tag reference.

This makes some things easier:
 * Importing git history into a brand new SVN branch.
 * Tracking multiple SVN branches via GIT_SVN_ID, even from multiple
   repositories.
 * Adding tags from SVN (still need to use GIT_SVN_ID, though).
 * Even merge tracking is supported, if and only the heads end up with
   100% equivalent tree objects.  This is more stricter but more robust
   and foolproof than parsing commit messages, imho.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-03 11:27:10 -08:00
Shawn Pearce
a41c175d6f Prevent --index-info from ignoring -z.
If git-update-index --index-info -z is used only the first
record given to the process will actually be updated as
the -z option is ignored until after all index records
have been read and processed.  This meant that multiple
null terminated records were seen as a single record which
was lacking a trailing LF, however since the first record
ended in a null the C string handling functions ignored the
trailing garbage.  So --index-info should be required to be
the last command line option, much as --stdin is required
to be the last command line option.  Because --index-info
implies --stdin this isn't an issue as the user shouldn't
be passing --stdin when also passing --index-info.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 23:07:42 -08:00
Jonas Fonseca
c7569b1e00 manpages: insert two missing [verse] markers for multi-line SYNOPSIS
Found with:

	for i in *.txt; do
		grep -A 2 "SYNOPSIS" "$i" | grep -q "^\[verse\]$" && continue
		multiline=$(grep -A 3 "SYNOPSIS" "$i" | tail -n 1)
		test -n "$multiline" && echo "$i: $multiline"
	done

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 23:07:34 -08:00
Aneesh Kumar K.V
9645da330f gitview: pass the missing argument _show_clicked_cb.
In our last update to use the encoding while showing the commit
diff we added a new argument to this function. But we missed
updating all the callers.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 23:07:01 -08:00
Johannes Schindelin
d5dddccaa0 Fix test case for some sed
Some versions of sed lack the "-i" option.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 23:06:47 -08:00
Eric Wong
fd8fc4ade5 git-branch: add -r switch to list refs/remotes/*
If we decide to use refs/remotes/, having a convenient way to
list them would be nice.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 23:06:04 -08:00
Junio C Hamano
cd1333db4f Merge branch 'cvsserver' of http://locke.catalyst.net.nz/git/git-martinlanghoff; branch 'ml/cvsserver' into next
* 'cvsserver' of http://locke.catalyst.net.nz/git/git-martinlanghoff:
  cvsserver: fix checkouts with -d <somedir>
  cvsserver: checkout faster by sending files in a sensible order

* ml/cvsserver:
  cvsserver: fix checkouts with -d <somedir>
  cvsserver: checkout faster by sending files in a sensible order
2006-03-02 23:00:45 -08:00
Martin Langhoff
e74ee784c7 cvsserver: fix checkouts with -d <somedir>
A recent Eclipse compat fix broke checkouts with -d. Fix it so that the server
sends the correct module name instead of the destination directory name.
2006-03-02 22:56:28 -08:00
Martin Langhoff
501c7372c7 cvsserver: checkout faster by sending files in a sensible order
Just by sending the files in an ordered fashion, clients can process them
much faster. And we can optimize our check of whether we created this
directory already -- faster.

Timings for a checkout on a commandline cvs client for a project with
~13K files totalling ~100MB:

Unsorted:
  603.12 real        16.89 user        42.88 sys

Sorted:
  298.19 real        26.37 user        42.42 sys
2006-03-02 22:56:27 -08:00
Junio C Hamano
539d84fe0a Merge branch 'jc/delta' into next
* jc/delta:
  diff-delta: cull collided hash bucket more aggressively.
2006-03-02 22:13:11 -08:00
Junio C Hamano
d4c9982f8e Merge branch 'jc/diff' into next
* jc/diff:
  diffcore-rename: similarity estimator fix.
2006-03-02 22:13:08 -08:00
Junio C Hamano
1706306a54 diffcore-rename: similarity estimator fix.
The "similarity" logic was giving added material way too much
negative weight.  What we wanted to see was how similar the
post-change image was compared to the pre-change image, so the
natural definition of similarity is how much common things are
there, relative to the post-change image's size.

This simplifies things a lot.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 22:12:33 -08:00
Junio C Hamano
262cc77dab Merge branch 'fk/blame' into next
* fk/blame:
  git-blame, take 2
  Merge part of 'lt/rev-list' into 'fk/blame'
2006-03-02 21:15:56 -08:00
Junio C Hamano
6f85a78df6 Merge branch 'lt/rev-list' into next
* lt/rev-list:
  setup_revisions(): handle -n<n> and -<n> internally.
2006-03-02 21:15:52 -08:00
Junio C Hamano
810e300d4c Merge branch 'master' into next
* master:
  Merge branch 'jc/diff'
  git-commit: make sure we protect against races.
  git-commit --amend
  show-branch --topics
  GIT-VERSION-GEN: squelch unneeded error from "cat version"
  Merge branch 'ml/cvsserver'
  annotate: resurrect raw timestamps.
  Documentation: rev-list --objects-edge
  Documentation: read-tree --aggressive
  war on whitespaces: documentation.
2006-03-02 21:15:26 -08:00
Junio C Hamano
0825f96cd0 Merge branch 'jc/diff'
* jc/diff:
  diffcore-delta: stop using deltifier for packing.
2006-03-02 21:15:06 -08:00
Junio C Hamano
b8310152bc git-commit: make sure we protect against races.
An earlier commit 8098a178b2
accidentally lost race protection from git-commit command.
This commit reinstates it.  When something else updates HEAD
pointer while you were editing your commit message, the command
would notice and abort the commit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 21:13:24 -08:00
Junio C Hamano
b4019f0456 git-commit --amend
The new flag is used to amend the tip of the current branch.  Prepare
the tree object you would want to replace the latest commit as usual
(this includes the usual -i/-o and explicit paths), and the commit log
editor is seeded with the commit message from the tip of the current
branch.  The commit you create replaces the current tip -- if it was a
merge, it will have the parents of the current tip as parents -- so the
current top commit is discarded.

It is a rough equivalent for:

	$ git reset --soft HEAD^
	$ ... do something else to come up with the right tree ...
	$ git commit -c ORIG_HEAD

but can be used to amend a merge commit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 21:08:33 -08:00
Martin Langhoff
cfcbd3427e cvsserver: fix checkouts with -d <somedir>
A recent Eclipse compat fix broke checkouts with -d. Fix it so that the server
sends the correct module name instead of the destination directory name.
2006-03-03 16:57:03 +13:00
Martin Langhoff
5398fed966 cvsserver: checkout faster by sending files in a sensible order
Just by sending the files in an ordered fashion, clients can process them
much faster. And we can optimize our check of whether we created this
directory already -- faster.

Timings for a checkout on a commandline cvs client for a project with
~13K files totalling ~100MB:

Unsorted:
  603.12 real        16.89 user        42.88 sys

Sorted:
  298.19 real        26.37 user        42.42 sys
2006-03-03 16:38:03 +13:00
Junio C Hamano
d320a5437f show-branch --topics
This adds a new flag, --topics, to help managing topic
branches.  When you have topic branches forked some time ago
from your primary line of development, show-branch would show
many "uninteresting" things that happend on the primary line of
development when trying to see what are still not merged from
the topic branches.

With this flag, the first ref given to show-branch is taken as
the primary branch, and the rest are taken as the topic
branches.  Output from the command is modified so that commits
only on the primary branch are not shown.  In other words,

	$ git show-branch --topics master topic1 topic2 ...

shows an (almost) equivalent of

	$ git rev-list ^master topic1 topic2 ...

The major differences are that (1) you can tell which commits
are on which branch, and (2) the commit at the fork point is
shown.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 17:16:08 -08:00
Junio C Hamano
0b8b051cd5 GIT-VERSION-GEN: squelch unneeded error from "cat version"
Now this is really a corner case, but if you have the git source
tree from somewhere other than the official tarball, you do not
have version file.  And if git-describe does not work for you
(maybe you do not have git yet), we spilled an error message
from "cat version".

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 16:42:39 -08:00
Junio C Hamano
64bc6e3db5 setup_revisions(): handle -n<n> and -<n> internally.
This moves the handling of max-count shorthand from the internal
implementation of "git log" to setup_revisions() so other users
of setup_revisions() can use it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 15:24:01 -08:00
Fredrik Kuivinen
fc675b8cd5 git-blame, take 2
Here is an updated version of git-blame. The main changes compared to
the first version are:

* Use the new revision.h interface to do the revision walking
* Do the right thing in a lot of more cases than before. In particular
  parallel development tracks are hopefully handled sanely.
* Lots of clean-up

It still won't follow file renames though.

There are still some differences in the output between git-blame and
git-annotate. For example, in 'Makefile' git-blame assigns lines
354-358 to 455a7f3275 and git-annotate
assigns the same lines to 79a9d8ea0d.

I think git-blame is correct in this case. This patterns occur in
several other places, git-annotate seems to sometimes assign lines to
merge commits when the lines actually changed in some other commit
which precedes the merge.

[jc: I have conned Ryan into doing test cases, so that it would
help development and fixes on both implementations.  Let the
battle begin! ;-) ]

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 15:10:39 -08:00
Junio C Hamano
c40610422e Merge part of 'lt/rev-list' into 'fk/blame'
Now blame will depend on the new revision walker infrastructure,
we need to make it depend on earlier parts of Linus' rev-list
topic branch, hence this merge.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 15:10:05 -08:00
Martin Mares
9f841cf1fb [PATCH] gitk: Make error_popup react to Return
The error popup window can be now closed not only by clicking
the button, but also by pressing Return.

Signed-Off-By: Martin Mares <mj@ucw.cz>

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-03-03 09:56:32 +11:00
Junio C Hamano
0cd5da56fa Merge branch 'ml/cvsserver'
* ml/cvsserver:
  cvsserver: Eclipse compat -- now "compare with latest from HEAD" works
  cvsserver: Checkout correctly on Eclipse
2006-03-02 14:19:33 -08:00
Paul Mackerras
c934a8a3a3 gitk: Fix a bug in drawing the selected line as a thick line
If you clicked on a line, so that it was drawn double-thickness,
and then scrolled to bring on-screen a child that hadn't previously
been drawn, the lines from it to the selected line were drawn
single-thickness.  This fixes it so they are drawn double-thickness.
This also removes an unnecessary setting of phase in drawrest.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-03-02 23:00:44 +11:00
Paul Mackerras
8ed1648415 gitk: Further speedups
Now we don't parse the commits as we are reading them, we just put
commit data on a list as a blob, and instead parse the commit when
we need the various parts of it, such as when a commit is drawn on
the canvas.  This makes searching a bit more interesting: now we
scan through the commit blobs doing a string or regexp match to find
commits that might match, then for those that might match, we parse
the commit info (if it isn't already parsed) and do the matching
for the various fields as before.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-03-02 22:56:44 +11:00
Junio C Hamano
d920e18f53 annotate: resurrect raw timestamps.
For scripted use this is quite useful.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 01:50:09 -08:00
Junio C Hamano
ec579767e7 Documentation: rev-list --objects-edge
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-02 01:11:31 -08:00