在Mercurial中更改repo的根目录

时间:2012-02-19 02:40:22

标签: version-control mercurial

我正在使用文件夹结构的Android游戏:

\bin
\data (contains game graphics)
\libs (libgdx engine jars)
\src
----\com
--------\brand
------------\game
                 (*.class files)

愚蠢的是,我在\ src目录中创建了一个mercurial存储库(hg init)。因此,如果我更新任何图形(小文件大小),我提交时它们不会添加到repo中。我的问题是:如何更改repo的根目录以包含\ data目录以及\ src目录,但不包括\ libs目录,因为它包含10-20mb的jar?

2 个答案:

答案 0 :(得分:4)

有两种方法可以做到这一点。

1)开始新的回购。这很快捷,但你会失去历史。

2)使用hg重命名。这实际上是一个移动命令。

将src目录重命名为有意义的内容,然后执行此操作。

  1. hg重命名MyProject / com MyProject / src / com
  2. 将所有文件/文件夹复制到MyProject /目录中。
  3. 将bin和libs标记为可忽略且
  4. 添加其他所有内容。
  5. hg commit

答案 1 :(得分:2)

如果您不想只执行hg rename,则可以使用convert扩展程序(Mercurial默认使用,您只需要enable it in your .hgrc)。

使用--filemap参数和类似于

的文件映射文件运行它
rename com src/com

您将获得包含所有历史记录的新存储库,但将com目录移至src/com。然后,您可以在其中复制bindatalibs个文件夹,运行hg addremove,您应该会很高兴。

警告:新的repo与旧的repo完全不同 - 更改集ID会有所不同,因此您过去使用的任何人都必须使用新的repo。< / p>