git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git filter-branch: Process commits in --date-order
@ 2009-03-02 23:10 Peter Rosin
  2009-03-03  0:28 ` Johannes Schindelin
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Rosin @ 2009-03-02 23:10 UTC (permalink / raw)
  To: git; +Cc: Peter Rosin

When converting an svn repository to git, I am filtering the commits
using --msg-filter. During this conversion I want to use the
.git-rewrite/map data to fill in references to other commits. In the
svn repo, there is a commit message e.g. "Cherry-pick r207", and I
want to append "r207 = <commit>" to the git commit message, as r207
no longer means very much. This works fine when the git commit
corresponding to r207 has been filtered before the current commit, and
is present in the map. When filtering in --topo-order, this is not
always the case, making it impossible to look up the git commit.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
---
 git-filter-branch.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 9a09ba1..dbb2bb3 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -257,11 +257,11 @@ mkdir ../map || die "Could not create map/ directory"
 
 case "$filter_subdir" in
 "")
-	git rev-list --reverse --topo-order --default HEAD \
+	git rev-list --reverse --date-order --default HEAD \
 		--parents --simplify-merges "$@"
 	;;
 *)
-	git rev-list --reverse --topo-order --default HEAD \
+	git rev-list --reverse --date-order --default HEAD \
 		--parents --simplify-merges "$@" -- "$filter_subdir"
 esac > ../revs || die "Could not get the commits"
 commits=$(wc -l <../revs | tr -d " ")
-- 
1.6.0.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] git filter-branch: Process commits in --date-order
  2009-03-02 23:10 [PATCH] git filter-branch: Process commits in --date-order Peter Rosin
@ 2009-03-03  0:28 ` Johannes Schindelin
  2009-03-03  0:39   ` Peter Rosin
  2009-03-03  0:51   ` Junio C Hamano
  0 siblings, 2 replies; 5+ messages in thread
From: Johannes Schindelin @ 2009-03-03  0:28 UTC (permalink / raw)
  To: Peter Rosin; +Cc: git

Hi,

On Tue, 3 Mar 2009, Peter Rosin wrote:

> When converting an svn repository to git, I am filtering the commits
> using --msg-filter. During this conversion I want to use the
> .git-rewrite/map data to fill in references to other commits. In the
> svn repo, there is a commit message e.g. "Cherry-pick r207", and I
> want to append "r207 = <commit>" to the git commit message, as r207
> no longer means very much. This works fine when the git commit
> corresponding to r207 has been filtered before the current commit, and
> is present in the map. When filtering in --topo-order, this is not
> always the case, making it impossible to look up the git commit.

I'd rather have this as an option.  God knows what breaks with time-skewed 
repositories if you use date-order instead of topo-order, and I'd rather 
not break that not quite uncommon case.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git filter-branch: Process commits in --date-order
  2009-03-03  0:28 ` Johannes Schindelin
@ 2009-03-03  0:39   ` Peter Rosin
  2009-03-03  0:51   ` Junio C Hamano
  1 sibling, 0 replies; 5+ messages in thread
From: Peter Rosin @ 2009-03-03  0:39 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git

Hi Johannes,

Den 2009-03-03 01:28 skrev Johannes Schindelin:
> Hi,
> 
> On Tue, 3 Mar 2009, Peter Rosin wrote:
> 
>> When converting an svn repository to git, I am filtering the commits
>> using --msg-filter. During this conversion I want to use the
>> .git-rewrite/map data to fill in references to other commits. In the
>> svn repo, there is a commit message e.g. "Cherry-pick r207", and I
>> want to append "r207 = <commit>" to the git commit message, as r207
>> no longer means very much. This works fine when the git commit
>> corresponding to r207 has been filtered before the current commit, and
>> is present in the map. When filtering in --topo-order, this is not
>> always the case, making it impossible to look up the git commit.
> 
> I'd rather have this as an option.  God knows what breaks with time-skewed 
> repositories if you use date-order instead of topo-order, and I'd rather 
> not break that not quite uncommon case.

Well, from the git rev-list docs:

        --date-order
               This option is similar to --topo-order in the sense that no
               parent comes before all of its children, but otherwise things
               are still ordered in the commit timestamp order.

Sounds pretty safe to me?

Cheers,
Peter

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git filter-branch: Process commits in --date-order
  2009-03-03  0:28 ` Johannes Schindelin
  2009-03-03  0:39   ` Peter Rosin
@ 2009-03-03  0:51   ` Junio C Hamano
  2009-03-03  7:41     ` Johannes Sixt
  1 sibling, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2009-03-03  0:51 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Peter Rosin, git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Tue, 3 Mar 2009, Peter Rosin wrote:
>
>> When converting an svn repository to git, I am filtering the commits
>> using --msg-filter. During this conversion I want to use the
>> .git-rewrite/map data to fill in references to other commits. In the
>> svn repo, there is a commit message e.g. "Cherry-pick r207", and I
>> want to append "r207 = <commit>" to the git commit message, as r207
>> no longer means very much. This works fine when the git commit
>> corresponding to r207 has been filtered before the current commit, and
>> is present in the map. When filtering in --topo-order, this is not
>> always the case, making it impossible to look up the git commit.
>
> I'd rather have this as an option.  God knows what breaks with time-skewed 
> repositories if you use date-order instead of topo-order, and I'd rather 
> not break that not quite uncommon case.

I am wondering if it even makes sense to allow users to disable
topological ordering.

Doesn't filter-branch have the same "child commits build on top of parent
commits" dependency as fast-export has?  And didn't you guys fix
fast-export recently?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git filter-branch: Process commits in --date-order
  2009-03-03  0:51   ` Junio C Hamano
@ 2009-03-03  7:41     ` Johannes Sixt
  0 siblings, 0 replies; 5+ messages in thread
From: Johannes Sixt @ 2009-03-03  7:41 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, Peter Rosin, Git Mailing List

Junio C Hamano schrieb:
> I am wondering if it even makes sense to allow users to disable
> topological ordering.
> 
> Doesn't filter-branch have the same "child commits build on top of parent
> commits" dependency as fast-export has?  And didn't you guys fix
> fast-export recently?

Doesn't --date-order have the same guarantee as --topo-order with respect
to parents and children, only that commits that can be rearranged such
that the guarantee remains are emitted in date order?

Anyway, the patch is unnecessary: If --date-order is needed, it can be
passed on the command line; this will override --topo-order.

-- Hannes

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-03-03  7:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-02 23:10 [PATCH] git filter-branch: Process commits in --date-order Peter Rosin
2009-03-03  0:28 ` Johannes Schindelin
2009-03-03  0:39   ` Peter Rosin
2009-03-03  0:51   ` Junio C Hamano
2009-03-03  7:41     ` Johannes Sixt

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 NNTP newsgroup(s).