【问题标题】:Change root directory of repo in Mercurial在 Mercurial 中更改 repo 的根目录
【发布时间】:2012-02-19 02:40:22
【问题描述】:

我正在开发一个具有文件夹结构的 Android 游戏:

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

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

【问题讨论】:

标签: version-control mercurial


【解决方案1】:

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

1) 开始一个新的仓库。它既快速又简单,但您会丢失您的历史记录。

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

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

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

【讨论】:

    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 2015-01-11
      • 2012-07-04
      • 2013-07-14
      • 2021-12-04
      • 2013-10-18
      • 1970-01-01
      • 2016-05-24
      相关资源
      最近更新 更多