【发布时间】:2012-12-05 17:53:57
【问题描述】:
嗯,经过数小时的阅读和反复试验,它终于击中了我。 Mercurial 并不想做 SubRepos……至少不是 TortoiseHg 和 Bitbucket。如果我弄错了,并且您不想对类似于“当然可行,您没有阅读官方文档”的粗鲁回应投反对票,那么请通过 TortoiseHg 提供一个简单的示例这将成功推送到 Bitbucket。也许是一个利用 mercurial、bitbucket 和 subrepos 的开源项目?
综上所述,如果我们将类库保存在单独的存储库中,并且推荐的方法是不使用子存储库(“作为最后的手段”),为所有依赖项捕获版本的推荐方法是什么mercurial repos,我可以快速将所有依赖 repos 跳转到正确的版本以进行错误修复等。
我怀疑我会使用标签来标记版本。那么,推荐的方法是手动转到所有库并使用通用版本标记标记每个存储库,然后手动恢复到所有程序集的该标记?
请避免使用有关工作流程管理复杂性的所有技术术语。在 SO 上有大量关于此的精彩阅读。我希望有一个带有几个 DLL 类库的简单的单个主 exe 项目。
【问题讨论】:
-
对我来说,听起来需要一个 Mercurial 扩展来处理引用(但不是子)存储库。
-
我在这里提供了一个简单的例子:bitbucket.org/SteveKaye/mainrepo 从主仓库克隆、更新和推送它没有任何问题。
-
@SteveKaye 感谢您提供这个简单的示例。你能回顾一下我的步骤,看看我是否按错误的顺序做某事吗? 1)创建 MainRepo 文件夹(右键单击 -> 在此处创建存储库)2)提交的更改 3)在 MainRepo 内创建一个名为 SubRepo 的文件夹(右键单击 -> 在此处创建存储库)4)提交对 SubRepo 的更改 5)重复 3 和 4对于 SubRepo2 6) 在 TortoiseHg 中,将 SubRepo 和 SubRepo2 添加为 SubRepos 7) 对 MainRepo 的提交更改 8) 推送到 BitBucket... 存储库不相关 在 BitBucket 中,我从新的存储库开始。这将是对 Bitbucket 的最初推动
-
@SteveKaye 再次感谢您提供的示例。我发现 TortoiseHg 正在像这样“subrepo = subrepo”而不是像你的示例“subrepo = ../subrepo”那样格式化 .hgsub 文件。在 Windows 世界中......“../”表明它比 .hgsub 文件上升了一级,但事实并非如此。我的 subrepo 目录设置和你的一样。我相信我有一个工作版本。非常感谢!
-
我没有理由亲自尝试它,但听起来有些人在使用 guestrepo 扩展作为 subrepos 的替代品方面有很好的体验。也许它在托管服务提供商支持方面没有那么多问题? bitbucket.org/selinc/guestrepo
标签: mercurial versioning tortoisehg bitbucket