1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-05 08:47:56 +01:00
Commit graph

4194 commits

Author SHA1 Message Date
Junio C Hamano
4a6c77cc0a Merge branch 'fk/blame'
* fk/blame:
  blame: Rename detection (take 2)
  rev-lib: Make it easy to do rename tracking (take 2)
  Make it possible to not clobber object.util in sort_in_topological_order (take 2)
2006-03-13 00:01:52 -08:00
Junio C Hamano
cf1e6d1ec5 Merge branch 'jc/diff' into next
* jc/diff:
  Fix up diffcore-rename scoring
2006-03-12 23:45:42 -08:00
Linus Torvalds
90bd932c81 Fix up diffcore-rename scoring
The "score" calculation for diffcore-rename was totally broken.

It scaled "score" as

	score = src_copied * MAX_SCORE / dst->size;

which means that you got a 100% similarity score even if src and dest were
different, if just every byte of dst was copied from src, even if source
was much larger than dst (eg we had copied 85% of the bytes, but _deleted_
the remaining 15%).

That's clearly bogus. We should do the score calculation relative not to
the destination size, but to the max size of the two.

This seems to fix it.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 23:02:00 -08:00
Junio C Hamano
2593a410e0 Merge branch 'jc/diff' into next
* jc/diff:
  diffcore-delta: tweak hashbase value.
2006-03-12 20:42:35 -08:00
Junio C Hamano
fc66d213f8 diffcore-delta: tweak hashbase value.
This tweaks the maximum hashvalue we use to hash the string into
without making the maximum size of the hashtable can grow from
the current limit.  With this, the renames detected becomes a
bit more precise without incurring additional paging cost.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 20:42:12 -08:00
Junio C Hamano
7be14b49ac Merge branch 'jc/diff' into next
* jc/diff:
  diffcore-delta: make the hash a bit denser.
2006-03-12 17:27:32 -08:00
Junio C Hamano
a7e71bb489 Merge branch 'jc/empty' into next
* jc/empty:
  revision traversal: --remove-empty fix (take #2).
2006-03-12 17:27:23 -08:00
Junio C Hamano
2821104db7 diffcore-delta: make the hash a bit denser.
To reduce wasted memory, wait until the hash fills up more
densely before we rehash.  This reduces the working set size a
bit further.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 17:26:32 -08:00
Junio C Hamano
c348f31ab9 revision traversal: --remove-empty fix (take #2).
Marco Costalba reports that --remove-empty omits the commit that
created paths we are interested in.  try_to_simplify_commit()
logic was dropping a parent we introduced those paths against,
which I think is not what we meant.  Instead, this makes such
parent parentless.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 17:06:57 -08:00
Junio C Hamano
3dcf2d0e00 Merge branch 'jc/empty' into next
* jc/empty:
  revision traversal: --remove-empty fix.
  annotate-tests: override VISUAL when running tests.
2006-03-12 13:43:36 -08:00
Junio C Hamano
a41e109c4b revision traversal: --remove-empty fix.
Marco Costalba reports that --remove-empty omits the commit that
created paths we are interested in.  try_to_simplify_commit()
logic was dropping a parent we introduced those paths against,
which I think is not what we meant.  Instead, this marks such
parent uninteresting.  The traversal does not go beyond that
parent as advertised, but we still say that the current commit
changed things from that parent.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 13:39:31 -08:00
Mark Wooding
8c3222079a annotate-tests: override VISUAL when running tests.
The tests hang for me waiting for Emacs with its output directed
somewhere strage, because I hedged my bets and set both EDITOR and
VISUAL to run Emacs.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 11:50:23 -08:00
Junio C Hamano
28f7533f70 Merge branch 'master' into next
* master:
  imap-send: Add missing #include for macosx
  git-diff: -p disables rename detection.
  imap-send: cleanup execl() call to use NULL sentinel instead of 0
  annotate.perl triggers rpm bug
2006-03-12 03:29:11 -08:00
Junio C Hamano
514236aa5a Merge branch 'jc/diff' into next
* jc/diff:
  diffcore-rename: somewhat optimized.
2006-03-12 03:29:09 -08:00
Johannes Schindelin
2d33501689 imap-send: Add missing #include for macosx
There is a compile error without that.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 03:28:20 -08:00
Junio C Hamano
c06c79667c diffcore-rename: somewhat optimized.
This changes diffcore-rename to reuse statistics information
gathered during similarity estimation, and updates the hashtable
implementation used to keep track of the statistics to be
denser.  This seems to give better performance.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-12 03:22:10 -08:00
Junio C Hamano
42efbf6d8a git-diff: -p disables rename detection. 2006-03-11 17:44:10 -08:00
Marco Roeland
8e7f9035b8 imap-send: cleanup execl() call to use NULL sentinel instead of 0
Some versions of gcc check that calls to the exec() family have the proper
sentinel for variadic calls. This should be (char *) NULL according to the
man page. Although for all other purposes the 0 is equivalent, gcc
nevertheless does emit a warning for 0 and not for NULL. This also makes the
usage consistent throughout git.

The whitespace in function calls throughout imap-send.c has its own style,
so I left it that way.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-11 02:00:35 -08:00
sean
be767c9172 annotate.perl triggers rpm bug
RPM, at least on Fedora boxes, automatically creates a
dependency for any perl "use" lines, and one of the help text
lines unfortunately begins like this:

    -S, --rev-file revs-file
            use revs from revs-file instead of calling git-rev-list

RPM gets confused and creates a false dependecy for the
nonexistent perl package "revs".  Obviously this creates a
problem when someone goes to install the git-core rpm.

Since other help sentences all start with capital letter, make
this one match them by upcasing "Use".  As a side effect, RPM
stops getting confused.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-11 00:03:30 -08:00
Junio C Hamano
c827a84c69 Merge branch 'nh/http' into next
* nh/http:
  http-push: cleanup
  http-push: support for updating remote info/refs
  http-push: improve remote lock management
  http-push: refactor remote file/directory processing
  HTTP slot reuse fixes
  http-push: fix revision walk
2006-03-10 23:02:23 -08:00
Nick Hengeveld
1a703cba6d http-push: cleanup
More consistent usage string, condense push output, remove extra slashes
in URLs, fix unused variables, include HTTP method name in failure
messages.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 23:01:56 -08:00
Nick Hengeveld
197e8951ab http-push: support for updating remote info/refs
If info/refs exists on the remote, get a lock on info/refs, make sure that
there is a local copy of the object referenced in each remote ref (in case
someone else added a tag we don't have locally), do all the refspec updates,
and generate and send an updated info/refs file.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 23:01:54 -08:00
Nick Hengeveld
512d632cf2 http-push: improve remote lock management
Associate the remote locks with the remote repo, add a function to check
and refresh all current locks.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 23:01:52 -08:00
Nick Hengeveld
3030baa7f0 http-push: refactor remote file/directory processing
Replace single-use functions with one that can get a list of remote
collections and pass file/directory information to user-defined functions
for processing.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 23:01:50 -08:00
Nick Hengeveld
baa7b67d09 HTTP slot reuse fixes
Incorporate into http-push a fix related to accessing slot results after
the slot was reused, and fix a case in run_active_slot where a
finished slot wasn't detected if the slot was reused.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 23:01:48 -08:00
Nick Hengeveld
5241bfe6d1 http-push: fix revision walk
The revision walk was not including tags because setup_revisions zeroes out
the revs flags.  Pass --objects so it picks up all the necessary bits.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 23:01:45 -08:00
Junio C Hamano
9937cbf491 Merge branch 'ew/remote' into next
* ew/remote:
  fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
2006-03-10 22:33:06 -08:00
Junio C Hamano
c301a0d2cf Merge branch 'fk/blame' into next
* fk/blame:
  blame: Rename detection (take 2)
  rev-lib: Make it easy to do rename tracking (take 2)
  Make it possible to not clobber object.util in sort_in_topological_order (take 2)
  Add git-imap-send, derived from isync 1.0.1.
  repack: prune loose objects when -d is given
  try_to_simplify_commit(): do not skip inspecting tree change at boundary.
  Fix t1200 test for breakage caused by removal of full-stop at the end of fast-forward message.
  Describe how to add extra mail header lines in mail generated by git-format-patch.
  Document the --attach flag.
  allow double click on current HEAD id after git-pull
2006-03-10 22:32:59 -08:00
Eric Wong
687b8be8bb fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
We can now easily fetch and merge things from heads in the
refs/remotes/ hierarchy in remote repositories.

The refs/remotes/ hierarchy is likely to become the standard for
tracking foreign SCMs, as well as the location of Pull: targets
for tracking remote branches in newly cloned repositories.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 22:31:20 -08:00
Fredrik Kuivinen
27e7304567 blame: Rename detection (take 2)
Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 22:22:20 -08:00
Fredrik Kuivinen
8efdc326c9 rev-lib: Make it easy to do rename tracking (take 2)
prune_fn in the rev_info structure is called in place of
try_to_simplify_commit. This makes it possible to do rename tracking
with a custom try_to_simplify_commit-like function.

This commit also introduces init_revisions which initialises the rev_info
structure with default values.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 22:22:00 -08:00
Fredrik Kuivinen
6b6dcfc297 Make it possible to not clobber object.util in sort_in_topological_order (take 2)
Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 22:11:14 -08:00
Mike McCormack
f2561fda36 Add git-imap-send, derived from isync 1.0.1.
git-imap-send drops a patch series generated by git-format-patch into an
IMAP folder. This allows patch submitters to send patches through their
own mail program.

git-imap-send uses the following values from the GIT repository
configuration:

The target IMAP folder:

[imap]
         Folder = "INBOX.Drafts"

A command to open an ssh tunnel to the imap mail server.

[imap]
         Tunnel = "ssh -q user@imap.server.com /usr/bin/imapd ./Maildir
2> /dev/null"

[imap]
         Host = imap.server.com
         User = bob
         Password = pwd
         Port = 143
2006-03-10 22:09:24 -08:00
Junio C Hamano
2d0048e681 repack: prune loose objects when -d is given
[jc: the request originally came from Martin Atukunda, which was
 improved further by Alex Riesen]

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 22:07:23 -08:00
Junio C Hamano
f3219fbbba try_to_simplify_commit(): do not skip inspecting tree change at boundary.
When git-rev-list (and git-log) collapsed ancestry chain to
commits that touch specified paths, we failed to inspect and
notice tree changes when we are about to hit uninteresting
parent.  This resulted in "git rev-list since.. -- file" to
always show the child commit after the lower bound, even if it
does not touch the file.  This commit fixes it.

Thanks for Catalin for reporting this.

See also:
	461cf59f89

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-10 21:59:37 -08:00
Junio C Hamano
eb0e0024b7 Fix t1200 test for breakage caused by removal of full-stop at the end of fast-forward message.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 22:51:21 -08:00
Mike McCormack
96ce6d2607 Describe how to add extra mail header lines in mail generated by git-format-patch. 2006-03-09 22:01:10 -08:00
Mike McCormack
a15a44ef6e Document the --attach flag. 2006-03-09 22:01:00 -08:00
Olaf Hering
180b0d7483 allow double click on current HEAD id after git-pull
Double click on to current HEAD commit id is not possible,
the dot has to go.

[jc: by popular requests.]

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 18:13:19 -08:00
Junio C Hamano
b8cfe290a8 Merge branch 'jc/fsck' into next
* jc/fsck:
  fsck-objects: Remove --standalone
  refs.c::do_for_each_ref(): Finish error message lines with "\n"
  Nicer output from 'git'
  Use #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
  Remove trailing dot after short description
  Fix some inconsistencies in the docs
  contrib/git-svn: fix a harmless warning on rebuild (with old repos)
  contrib/git-svn: remove the --no-stop-on-copy flag
  contrib/git-svn: fix svn compat and fetch args
  Don't recurse into parents marked uninteresting.
  diff-delta: bound hash list length to avoid O(m*n) behavior
  test-delta needs zlib to compile
  git-fmt-merge-msg cleanup
2006-03-09 13:10:50 -08:00
Junio C Hamano
7aaa715d0a fsck-objects: Remove --standalone
The fsck-objects command (back then it was called fsck-cache)
used to complain if objects referred to by files in .git/refs/
or objects stored in files under .git/objects/??/ were not found
as stand-alone SHA1 files (i.e.  found in alternate object pools
or packed archives stored under .git/objects/pack).  Back then,
packs and alternates were new curiosity and having everything as
loose objects were the norm.

When we adjusted the behaviour of fsck-cache to consider objects
found in packs are OK, we introduced the --standalone flag as a
backward compatibility measure.

It still correctly checks if your repository is complete and
consists only of loose objects, so in that sense it is doing the
"right" thing, but checking that is pointless these days.  This
commit removes --standalone flag.

See also:

	23676d407c
	8a498a05c3

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 13:10:31 -08:00
Junio C Hamano
f61c2c970c refs.c::do_for_each_ref(): Finish error message lines with "\n"
We used fprintf() to show an error message without terminating
it with LF; use error() for that.

cf. c401cb48e7

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 12:59:16 -08:00
Fredrik Kuivinen
a87cd02ce0 Nicer output from 'git'
[jc: with suggestions by Jan-Benedict Glaw]

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 12:03:14 -08:00
Junio C Hamano
b4f2a6ac92 Use #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 11:58:05 -08:00
Fredrik Kuivinen
7bd7f2804d Remove trailing dot after short description
Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 11:44:11 -08:00
Fredrik Kuivinen
5001422d30 Fix some inconsistencies in the docs
Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 11:43:58 -08:00
Eric Wong
779b144625 contrib/git-svn: fix a harmless warning on rebuild (with old repos)
It's only for repositories that were imported with very early
versions of git-svn.  Unfortunately, some of those repos are out
in the wild already, so fix this warning.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 10:10:30 -08:00
Eric Wong
7317ed906a contrib/git-svn: remove the --no-stop-on-copy flag
Output a big warning if somebody actually has a pre-1.0 version
of svn that doesn't support it.

Thanks to Yann Dirson for reminding me it still existed
and attempting to re-enable it :)

I think I subconciously removed support for it earlier...

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 10:10:18 -08:00
Eric Wong
1d52aba839 contrib/git-svn: fix svn compat and fetch args
'svn info' doesn't work with URLs in svn <= 1.1.  Now we
only run svn info in local directories.

As a side effect, this should also work better for 'init' off
directories that are no longer in the latest revision of the
repository.

svn checkout -r<revision> arguments are fixed.
Newer versions of svn (1.2.x) seem to need URL@REV as well as
-rREV to checkout a particular revision...

Add an example in the manpage of how to track directory that has
been moved since its initial revision.

A huge thanks to Yann Dirson for the bug reporting and testing
my original patch.  Thanks also to Junio C Hamano for suggesting
a safer way to use git-rev-parse.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 10:04:58 -08:00
Matthias Urlichs
d2c4af7373 Don't recurse into parents marked uninteresting.
revision.c:make_parents_uninteresting() is exponential with the number
of merges in the tree. That's fine -- unless some other part of git
already has pulled the whole commit tree into memory ...

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-09 01:49:07 -08:00