git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>, git@vger.kernel.org
Subject: Re: What's cooking in git/spearce.git (topics)
Date: Mon, 22 Oct 2007 03:16:44 -0400	[thread overview]
Message-ID: <20071022071644.GA7290@coredump.intra.peff.net> (raw)
In-Reply-To: <20071022063222.GS14735@spearce.org>

On Mon, Oct 22, 2007 at 02:32:22AM -0400, Shawn O. Pearce wrote:

> * lt/rename (Sun Oct 21 16:59:03 2007 -0700) 2 commits
>  - Linear-time/space rename logic (exact renames only)
>  - Split out "exact content match" phase of rename detection
> 
> t4001-diff-rename.sh failed while running tests on pu.  I'm pretty
> sure its this topic from Linus.  Need to look at it further.

Hrm, the problem is that it's not favoring basenames anymore. But I
think it is because the loop in find_identical_files is inside out. For
every source file, it picks the best destination file. But I think we
want to do the opposite: for every destination file, pick the best
source file. Otherwise, if a non-basename source file is connected with
a particular destination file, we no longer try that destination file
again.

Patch is below (please just squash with the one from Linus).

diff --git a/diffcore-rename.c b/diffcore-rename.c
index 05d39db..8881818 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -252,17 +252,18 @@ static int find_identical_files(struct file_similarity *src,
 {
 	int renames = 0;
 	do {
-		struct diff_filespec *one = src->filespec;
+		struct diff_filespec *one = dst->filespec;
 		struct file_similarity *p, *best;
 		int i = 100;
 
 		best = NULL;
-		for (p = dst; p; p = p->next) {
+		for (p = src; p; p = p->next) {
 			struct diff_filespec *two = p->filespec;
 
-			/* Already picked as a destination? */
+			/* Already picked as a source? */
 			if (!p->src_dst)
 				continue;
+
 			/* False hash collission? */
 			if (hashcmp(one->sha1, two->sha1))
 				continue;
@@ -276,10 +277,10 @@ static int find_identical_files(struct file_similarity *src,
 		}
 		if (best) {
 			best->src_dst = 0;
-			record_rename_pair(best->index, src->index, MAX_SCORE);
+			record_rename_pair(dst->index, best->index, MAX_SCORE);
 			renames++;
 		}
-	} while ((src = src->next) != NULL);
+	} while ((dst = dst->next) != NULL);
 	return renames;
 }
 

  parent reply	other threads:[~2007-10-22  7:17 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-22  6:32 What's cooking in git/spearce.git (topics) Shawn O. Pearce
2007-10-22  6:59 ` Jeff King
2007-10-22  7:16 ` Jeff King [this message]
2007-10-23  2:32   ` Linus Torvalds
2007-10-23  3:48     ` Jeff King
2007-10-22  7:24 ` Pierre Habouzit
2007-10-22 15:27 ` Steffen Prohaska
2007-10-23  1:26 ` Junio C Hamano
2007-10-23  3:34   ` Shawn O. Pearce
2007-10-24 12:51 ` What's cooking in git.git (topics) Junio C Hamano
2007-10-24 13:09   ` David Symonds
2007-10-24 16:08   ` Scott Parish
2007-10-24 18:27     ` Andreas Ericsson
2007-10-25  0:35       ` Scott Parish
2007-11-01  5:41   ` Junio C Hamano
2007-11-01 11:02     ` Jakub Narebski
2007-11-01 20:57       ` Junio C Hamano
2007-11-01 18:33     ` Linus Torvalds
2007-11-01 19:19       ` Geert Bosch
2007-11-01 20:27         ` Junio C Hamano
2007-11-01 20:47           ` Mike Hommey
2007-11-01 21:20             ` Junio C Hamano
2007-11-02  0:32               ` Junio C Hamano
2007-11-01 21:44             ` Pierre Habouzit
2007-11-01 21:17           ` Geert Bosch
2007-11-02  0:00             ` Jonas Fonseca
2007-11-01 21:18           ` Theodore Tso
2007-11-01 21:26             ` Melchior FRANZ
2007-11-01 21:32           ` Johan Herland
2007-11-01 21:51             ` Junio C Hamano
2007-11-01 22:05               ` Linus Torvalds
2007-11-01 22:26                 ` Bill Lear
2007-11-01 22:50                 ` Junio C Hamano
2007-11-02  2:19                 ` Petr Baudis
2007-11-01 21:42           ` Pierre Habouzit
2007-11-02  9:39             ` Andreas Ericsson
2007-11-01 21:57       ` Pierre Habouzit
2007-11-02  0:04       ` Jakub Narebski
2007-11-02  2:23         ` Petr Baudis
2007-11-02  7:25           ` Jakub Narebski
2007-11-02  7:28             ` Jakub Narebski
2007-11-02  8:42               ` Pierre Habouzit
2007-11-02  6:06       ` Miles Bader
2007-11-02 15:13         ` Miles Bader
2007-11-02  9:38       ` Andreas Ericsson
2007-11-02 11:03         ` Johannes Schindelin
2007-11-01 21:41     ` Brian Downing
2007-11-01 21:46       ` Pierre Habouzit
2007-11-02 10:26       ` Wincent Colaiuta
2007-11-04  4:14     ` Junio C Hamano
2007-11-04  9:43       ` Jakub Narebski
2007-11-04 11:38       ` Pierre Habouzit
2007-11-08  8:08       ` Junio C Hamano
2007-11-08 20:44         ` Steffen Prohaska
2007-11-12  7:09         ` Junio C Hamano
2007-11-12 12:21           ` Johannes Schindelin
2007-11-12 12:26             ` Pierre Habouzit
2007-11-12 12:33               ` Johannes Schindelin
2007-11-12 13:11                 ` [PATCH] rebase: brown paper bag fix after the detached HEAD patch Johannes Schindelin
2007-11-12 14:53                 ` What's cooking in git.git (topics) Pierre Habouzit
2007-11-12 14:27             ` Steffen Prohaska
2007-11-12 15:02               ` Johannes Schindelin
2007-11-18 16:13                 ` [PATCH 1/2] push: Add '--matching' option and print warning if it should be used Steffen Prohaska
2007-11-18 16:13                   ` [PATCH 2/2] push: Add '--current', which pushes only the current branch Steffen Prohaska
2007-11-19  1:28                     ` Junio C Hamano
2007-11-19  6:41                       ` Steffen Prohaska
2007-11-19  7:27                         ` Junio C Hamano
2007-11-19  7:50                           ` Junio C Hamano
2007-11-19  9:27                             ` Andreas Ericsson
2007-11-19  8:17                           ` Steffen Prohaska
2007-11-19  8:35                             ` Junio C Hamano
2007-11-19  9:54                               ` Steffen Prohaska
2007-11-19 16:51                                 ` [PATCH] push: Add "--current", " Steffen Prohaska
2007-11-19 11:17                               ` [PATCH 2/2] push: Add '--current', " Jakub Narebski
2007-11-19 19:57                                 ` Junio C Hamano
2007-11-19 21:04                                   ` Jakub Narebski
2007-11-19 22:15                                     ` Junio C Hamano
2007-11-19 22:29                                       ` Jakub Narebski
2007-11-19  9:24                         ` Andreas Ericsson
2007-11-12 15:15           ` [PATCH] git-commit: Add tests for invalid usage of -a/--interactive with paths Björn Steinbrink
2007-11-15  0:18           ` What's cooking in git.git (topics) Junio C Hamano
2007-11-15  0:49             ` Johannes Schindelin
2007-11-15 14:49               ` [PATCH] t7501-commit: Add test for git commit <file> with dirty index Kristian Høgsberg
2007-11-15 15:55                 ` Johannes Schindelin
2007-11-15 16:11                 ` [PATCH] builtin-commit: fix "git add x y && git commit y" committing x, too Johannes Schindelin
2007-11-15 16:37                   ` Johannes Schindelin
2007-11-15 17:01                   ` Kristian Høgsberg
2007-11-16  0:43                     ` Johannes Schindelin
2007-11-17  8:45                       ` Junio C Hamano
2007-11-18  9:18                         ` Junio C Hamano
2007-11-17 12:40             ` What's cooking in git.git (topics) Jeff King
2007-11-17 20:51             ` Junio C Hamano
2007-11-17 23:42               ` Alex Riesen
2007-11-18  1:29                 ` Junio C Hamano
2007-11-21  9:23               ` Junio C Hamano
2007-11-23  8:48                 ` Junio C Hamano
2007-11-23 10:30                   ` Jeff King
2007-11-23 13:23                     ` Johannes Schindelin
2007-11-24 11:38                       ` Jeff King
2007-11-24 15:47                         ` Nicolas Pitre
2007-11-24 19:09                           ` Junio C Hamano
2007-11-25 21:51                             ` J. Bruce Fields
2007-11-25 22:42                               ` Junio C Hamano
2007-11-25 23:08                                 ` J. Bruce Fields
2007-11-26  4:02                               ` Nicolas Pitre
2007-11-26  4:15                                 ` J. Bruce Fields
2007-11-26  4:29                                   ` Nicolas Pitre
2007-11-26  4:45                                     ` J. Bruce Fields
2007-11-26  9:03                                     ` Jakub Narebski
2007-11-26  9:09                                       ` Andreas Ericsson
2007-11-26 19:11                                       ` Nicolas Pitre
2007-11-26 19:24                                         ` David Kastrup
2007-11-26 20:25                                           ` Nicolas Pitre
2007-11-26 20:40                                             ` Junio C Hamano
2007-11-26 20:45                                             ` David Kastrup
2007-11-26 21:09                                               ` Nicolas Pitre
2007-11-26 21:22                                                 ` David Kastrup
2007-11-26 22:02                                                   ` Nicolas Pitre
2007-11-26 23:05                                                     ` David Kastrup
2007-11-26 23:28                                                       ` Nicolas Pitre
2007-11-26 23:52                                                         ` David Kastrup
2007-11-27  4:05                                                           ` Nicolas Pitre
2007-12-05 21:58                                                 ` Miles Bader
2007-11-26 21:14                                             ` Jakub Narebski
2007-11-26 21:36                                               ` Johannes Schindelin
2007-11-26 21:47                                                 ` Nicolas Pitre
2007-11-26  6:15                                   ` Jan Hudec
2007-11-25 20:27                   ` Junio C Hamano
2007-11-25 20:36                     ` Jakub Narebski
2007-11-25 20:53                       ` J. Bruce Fields
2007-12-01  2:37                     ` Junio C Hamano
2007-12-01  8:55                       ` Eric Wong
2007-12-02 14:14                       ` [PATCH, next version] Add 'git fast-export', the sister of 'git fast-import' Johannes Schindelin
2007-12-02 14:40                       ` What's cooking in git.git (topics) Johannes Schindelin
2007-12-04  8:43                       ` Junio C Hamano
2007-12-04  9:40                         ` Johannes Sixt
2007-12-04 10:08                           ` msysGit on FAT32 (was: What's cooking in git.git (topics)) Jakub Narebski
2007-12-04 13:30                             ` Johannes Schindelin
2007-12-04 13:48                               ` msysGit on FAT32 Johannes Sixt
2007-12-04 14:37                                 ` Johannes Schindelin
2007-12-04 20:03                           ` What's cooking in git.git (topics) Steffen Prohaska
2007-12-05 10:59                         ` Junio C Hamano
2007-12-05 11:08                           ` Jakub Narebski
2007-12-05 11:10                           ` Jakub Narebski
2007-12-06  4:43                             ` Jeff King
2007-12-05 11:37                           ` [PATCH] Soft aliases: add "less" and minimal documentation Johannes Schindelin
2007-12-05 19:45                             ` Junio C Hamano
2007-12-06  4:50                               ` Jeff King
2007-12-06  4:32                           ` What's cooking in git.git (topics) Jeff King
2007-12-07  9:51                           ` Junio C Hamano
2007-12-07 11:11                             ` Jakub Narebski
2007-12-07 19:29                               ` Junio C Hamano
2007-12-07 21:36                             ` Miklos Vajna
2007-12-09 10:27                             ` Junio C Hamano
2007-12-13  2:48                               ` Junio C Hamano
2007-12-13  3:22                                 ` Nicolas Pitre
2007-12-13 22:31                                   ` [PATCH 1/2] xdl_diff: identify call sites Junio C Hamano
2007-12-14  7:03                                     ` Junio C Hamano
2007-12-13 22:31                                   ` [PATCH 2/2] xdi_diff: trim common trailing lines Junio C Hamano
2007-12-14  9:06                                     ` Peter Baumann
2007-12-14 19:15                                       ` Junio C Hamano
2007-12-17  8:40                                 ` What's cooking in git.git (topics) Junio C Hamano
2007-12-23  9:20                                   ` Junio C Hamano
2007-12-31 10:47                                     ` checkout --push/--pop idea (Re: What's cooking in git.git (topics)) Jan Hudec
2008-01-05 11:01                                     ` What's cooking in git.git (topics) Junio C Hamano
2008-01-05 16:04                                       ` Johannes Schindelin
2008-01-22  8:47                                       ` What will be cooking in git.git post 1.5.4 (topics) Junio C Hamano
2007-12-04 16:18                       ` What's cooking in git.git (topics) Brian Downing
  -- strict thread matches above, loose matches on Subject: below --
2007-10-16  6:04 What's cooking in git/spearce.git (topics) Shawn O. Pearce
2007-10-16 11:16 ` Johannes Schindelin
2007-10-16 19:57   ` Theodore Tso
2007-10-17  3:20     ` Shawn O. Pearce
2007-10-23  1:15     ` Junio C Hamano
2007-10-23  1:21       ` Theodore Tso
2007-10-23  1:29         ` Junio C Hamano
2007-10-23  2:00           ` Theodore Tso
2007-10-23  4:05             ` Shawn O. Pearce
2007-10-23  4:33               ` Theodore Tso
2007-10-23  4:46                 ` Shawn O. Pearce
2007-10-23  4:56                   ` Theodore Tso
2007-10-23  5:07                     ` Shawn O. Pearce
2007-10-23  5:30                       ` Theodore Tso
2007-10-23  5:42                         ` Shawn O. Pearce
2007-10-23 12:03                           ` Theodore Tso
2007-10-23 17:44                             ` Daniel Barkalow
2007-10-23 19:00                             ` Junio C Hamano
2007-10-24  0:12                               ` Theodore Tso
2007-10-23  4:27         ` Shawn O. Pearce
2007-10-16 23:40   ` Shawn O. Pearce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071022071644.GA7290@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=spearce@spearce.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).