如何彻底改变hg repo的结构

时间:2014-06-05 20:12:55

标签: mercurial dvcs

我有hg(Mercurial)回购,位于:

http://myhg:5000/projects/fizzbuzz

fizzbuz目录具有以下基本结构:

fizzbuzz/
    src/
        ... thousands of source files
    docs/
        ... lots of docs
    tests/
        ... lots of tests

我现在完全重新设计 fizzbuzz应用。新应用程序的项目结构完全与现有应用程序不同(从上到下):

fizzbuzz/
    herps/
        foo/
            ... thousands of foos
        bar/
            ... thousands of bars
    derps/
        ... lots of derps

它本质上是一个全新的应用程序。我想一个解决方案是删除fizzbuzz repo,然后创建一个新的代码并将我的代码添加到新的代码中。但我想知道是否有办法基本上告诉hg删除回购中的所有内容(但不删除回购),然后添加新的,重新设计的内容。或者其他一些方法来优雅地替换旧的代码库。想法?提前谢谢!

2 个答案:

答案 0 :(得分:0)

当然,您可以通过删除所有内容并提交所有更改(所有删除)来擦除存储库。如果您需要恢复或查看旧代码,则在删除之前检查修订版仍然可以使用它。除非您的存储库在磁盘上非常大,否则这可能是要走的路 - 或者您可以为新版本启动一个新的存储库并保持当前的存储库。

在任何一种情况下,删除所有代码及其历史通常都是不明智的。

答案 1 :(得分:0)

看看Convert extension。虽然根据设计,无法更改当前存储库的历史记录,但您可以通过hg convert根据现有存储库的历史记录构建新的存储库。这对于您描述的场景非常有用,您需要将文件结构重构到旧历史不再有用的程度。

也就是说,考虑直接在当前存储库中进行更改。重写历史会带来什么实际好处?立即进行更改,Mercurial将继续执行跟踪您来自何处的工作。