我正在与其他三个开发人员一起开发一个新项目,我们都是 Mercurial 的新手。
在 Visual Studio 2010 中创建构建后事件,以将 DLL 复制到公共文件夹。每次有人提交或更新时,我们都想重写而不考虑版本或合并。也就是说,此特定文件夹会在每次更新时覆盖本地工作副本。
可能吗?
我正在与其他三个开发人员一起开发一个新项目,我们都是 Mercurial 的新手。
在 Visual Studio 2010 中创建构建后事件,以将 DLL 复制到公共文件夹。每次有人提交或更新时,我们都想重写而不考虑版本或合并。也就是说,此特定文件夹会在每次更新时覆盖本地工作副本。
可能吗?
传统观点是,您根本不应该提交构建产品。您版本的源代码不是 dll。您在构建期间从 CI 系统下载的那些。
也就是说,如果它们都是 DLL,您可以为它们设置自定义合并:
[merge-patterns]
**.dll = internal:remote
当 .dll 文件发生冲突时,它总是使用“其他”版本。更多细节在这里。
也许mercurial hook就是答案。
可以创建 post commit 或 post pull hook 来做一些工作,在这种情况下将文件复制到 common 文件夹。
但是,如果您希望在每次构建后复制文件,那么 mercurial 不是办法。在这种情况下,构建工具应该复制必要的文件。