[racket-dev] proposal for moving to packages: repository

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri May 24 16:54:43 EDT 2013

At Fri, 24 May 2013 12:44:35 -0400, Eli Barzilay wrote:
> > > * The script should also take care to deal with files that got
> > >   removed in the past.
> > 
> > Ditto.
> 
> I don't believe that it's *not* doing this, so I did the double-check
> in the form of a test. 

You're right --- I misunderstood your example.

Still, I'm happy enough with the result in your example. The conversion
does preserve `git log --follow' results for the files that survive,
which was my intended spec. And maybe it's better to explain my
interest as `git blame', since my main interest in the history of a
file is often how/why a particular bit of code ended up as it is.

> What I'm saying is that if filter-branch using your script takes 20
> hours

Just to confirm, my experiment on the main repo completed in right at
20 hours. (The `git log --follow's and `git blame's that I tried look
good to me.)

>   * filter-branch one time using your script to reorganize the files
>     according to packages
>   * use filter-branch with a subdirectory filter 5 times to create
>     each repository
>   Total runtime: about 21 hours
> 
> This latter use would end up with the final tree being exactly the
> same (since you're talking about doing the reorganization within git),
> but the history would be different since it's as if the files were
> there the whole time.

I don't see how that works. Since my script leaves each file in its
original location for old commits, I expect a subdirectory
`filter-branch' to still drop history for the old locations. In any
case, I'm happy to sort out that detail later.

If we agree that `git mv' before splitting is practical, though, that's
all I need for now.


Posted on the dev mailing list.