2

我们有一个项目,供应商为我们生成一些自定义代码,我们生成后端内容。每次他们向我们发送新版本时,我们都会手动将整个文件夹结构合并到我们的存储库中。这对于添加和修改的文件(只需复制/粘贴)很容易,但我必须创建一个批处理脚本来删除所有已删除的文件/文件夹(我使用 diff 工具获取已删除文件的列表,然后制作一个批处理文件)。

我们的 SVN 存储库如下所示:

我们的项目\
--OurBackendCode\
--VendorCode\

我知道我可以先删除我们仓库中供应商目录中的所有文件,然后添加新版本。这很容易,但会在 SVN 日志中留下不需要的“已删除”和“添加”条目(我们在 SVN 中保留其代码副本的全部原因是我们可以轻松访问日志以进行故障排除)。

有没有更简单的方法可以将这些已删除的文件合并到我的仓库中?

编辑:蒂姆正确地指出,如果我们只允许供应商访问我们的 SVN 存储库,他们可以在分支上进行更改。不幸的是,这不是我的决定。我只是一个开发者。另外,我怀疑我们会信任他们(我对 SVN 安全性一无所知)。

第二次编辑:我们最终只是删除了现有的供应商分支并添加了新的供应商代码。但是我提出了让供应商访问我们的 SVN 的想法,并且它带着一些承诺向上浮动 :)

4

5 回答 5

2

你为什么不让他们访问你的 SVN 存储库——也许是一个分支,然后你合并到你的?

只允许他们访问他们需要的部分很简单。我真的认为这对你和他们来说是最好的解决方案。

于 2008-12-04T16:24:23.060 回答
2

如果您可以让他们 SVN 访问他们需要的文件夹并让他们管理它,那将会容易得多。:-)

噢,蒂姆在我之前点击了帖子!

简化您所做工作的唯一方法是将运行差异的整个过程编写脚本,获取已删除/已删除的文件,并将其输入 svn -delete。然后至少您将有 1 个命令与源文件夹和目标文件夹一起运行。

理想情况下,您只想让远程开发人员访问 SVN,就像 Tim 说的那样,如果您无法锁定文件夹,请给他们一个分支,但您最终仍然会运行合并(使用分支)。

于 2008-12-04T16:25:02.153 回答
2

在我看来,您在这里想要的是供应商分支,其中供应商代码的每次连续导入都会获得一个新版本。

这样,无需管理删除,您可以使用 Subversion 来区分 1.0 版和 2.0 版等。

于 2008-12-04T16:26:48.937 回答
1

创建一个 verdor 存储库(与您的开发存储库分开),并要求供应商转储自上一个版本交付给您以来的修订。在您的站点上,您可以简单地将其加载回供应商的存储库。简单易行。

于 2011-04-19T15:50:58.230 回答
0

一位同事提出的一个答案是为新的代码删除创建一个临时分支,然后从该分支到真正的分支进行 SVN 合并(然后删除临时分支)。

于 2008-12-04T16:41:00.063 回答