Repository Reorganization Question

Herbert Valerio Riedel hvr at gnu.org
Tue Dec 10 10:33:29 UTC 2013


On 2013-12-09 at 13:31:15 +0100, Austin Seipp wrote:
> It seems that while most people are in favor of migrating and
> preserving the history there are a few sticky bits concerning some of
> the minor details. So I think the discussion should continue, but we
> clearly shouldn't pull the trigger quite yet. testsuite etc will live
> on for a while longer.

In the mean time I've updated the branch

 http://git.haskell.org/ghc.git/log/refs/heads/wip/T8545

to include the full testsuite.git history, with the history rewritten as
if the files have been always in the 'testsuite/' folder, and with the
blobs removed; moreover I've tweaked the sync-all script to check for a
left-over testsuite/.git folder, to remind users to move it out of the
way.

Thus, with the current state of the T8545 branch, 

 - `git blame testsuite/tests/typecheck/should_compile/all.T`
   works as expected

 - `git log testsuite/`
   as well as
   `cd testsuite/ && git log .`
   works as expected

 - The cleaned-from-large-blob testsuite.git history adds only about
   10MiB packed transfer size (as opposed to the full ~30MiB it would
   require if the blobs weren't removed)

 - The historic/original testsuite.git commit hash ids are not retained
   in ghc.git, as they continue to exist in the "legacy" testsuite.git
   (where all current Trac hyperlinks will continue to refer to
   anyway)[1]; 

 - When peferming a `sync-all pull` (with the old `sync-all` script)
   developers will get the new ghc.git-tracked `testsuite/` folder and
   on the next `sync-all` invocation (which will use the updated
   sync-all script for the first time) they'll be reminded/forced to
   move away a possibly left-over `testsuite/.git` folder.

 - At some point after the switch, `testsuite.git` should be set
   read-only (for the `master` branch at least).

So, what are the current sticky bits left over given the
proof-of-concept in wip/T8545 that still need to be addressed?

 [1] If we really need this for our development workflows, we could
     still attempt to make use of the `git replace` facility in the
     future to overlay the old commit ids. But if we don't need it (and
     from the discussion so far I don't see a requirement for that),
     it's better to keep it simple.


More information about the ghc-devs mailing list