我们有一个项目,供应商为我们生成一些自定义代码,我们生成后端内容。每次他们向我们发送新版本时,我们都会手动将整个文件夹结构合并到我们的存储库中。这对于添加和修改的文件很简单(只需复制/粘贴),但我必须创建一个批处理脚本来删除已删除的所有文件/文件夹(我使用diff工具获取已删除文件的列表,然后制作来自的批处理文件)。
我们的SVN回购看起来像这样:
OurProject \
--OurBackendCode \
--VendorCode \
我知道我可以先删除repo中vendor目录中的所有文件,然后添加新版本。这很容易,但会将不需要的“已删除”和“添加”条目留给SVN日志(我们在SVN中保留其代码副本的全部原因是我们可以轻松访问日志以进行故障排除)。
是否有更简单的方法将这些已删除的文件合并到我的仓库?
编辑:蒂姆正确地指出,如果我们只允许供应商访问我们的SVN仓库,他们就可以在分行上进行更改。不幸的是,那不是我的号召;我只是一名开发人员。另外我怀疑我们会信任他们(我对SVN安全性一无所知)。第二次编辑:我们最终只删除了现有的供应商分支,只是添加了新的供应商代码。但我提出了让供应商访问我们的SVN的想法,并且它向上浮动并带来一些承诺:)
答案 0 :(得分:2)
为什么不允许他们访问你的SVN回购 - 也许是一个分支,然后你合并到你的?
允许他们只访问他们需要的部分很简单。我确实认为这对你和他们来说是最好的解决方案。
答案 1 :(得分:2)
如果您可以让SVN访问他们需要的文件夹,并让他们管理它,那将会更容易。 : - )
在我做之前,蒂姆打了Post!简化您正在做的事情的唯一方法是编写运行差异的整个过程的脚本,获取已删除/删除的文件,并将其提供给svn -delete。那么至少你有1个命令来运行源文件夹和目标文件夹。
理想情况下,你想让远程开发人员访问SVN,就像Tim说的那样,如果你不能锁定文件夹,给他们一个分支,但你最终还是会运行合并(带分支)。 / p>
答案 2 :(得分:2)
听起来像你想要的是Vendor Branches,其中供应商代码的每次连续导入都会获得新版本。
这样,没有要管理的删除,你可以使用Subversion从2.0等扩展版本1.0。
答案 3 :(得分:1)
创建一个verdor repo(与您的开发仓库分开),并要求供应商转储自上一版本交付给您的修订版。在您的站点上,您只需将其加载回供应商的仓库即可。 简单易用。
答案 4 :(得分:0)
同事提出的一个答案是为新代码drop创建一个临时分支,然后从该分支到真实分支进行SVN合并(之后删除临时分支)。