1

我想设置一个 SVN,它将包含主干文件夹中七个不同接口的 7 个目录。

有时我必须对这些界面之一进行更改,但是当我这样做时,所有文件夹的修订号都会增加。

如何设置 SVN,以便在 trunk 中的一个目录中进行更改时不会影响其他目录?

或者这是不可能的?

例如

后备箱(第 1 版)

  • 接口 a (rev 1)
  • 接口 b (rev 1)
  • 接口 c (rev 1)

我对接口 b 进行了更改,然后变为

后备箱(第 2 版)

  • 接口 a (rev 1)
  • 接口 b (rev 2)
  • 接口 c (rev 1)

因此,当设计人员/开发人员查看时,他们可以看到系统的最新迭代中只有一个已更改的界面。所以他们可以忽略其他人,而只是将更改部署到实时环境。

4

1 回答 1

2

如何设置 SVN,以便在 trunk 中的一个目录中进行更改时不会影响其他目录?

什么都不做,只要理解和正确使用 Subversion:

SVN-tree 中每个节点的修订版是所有节点子节点的最新修订版,即在您的情况下,在提交到interface b(作为修订版 2)目录 /trunk 后将有 rev 2,接口 b - rev 2 也有,但最后更改-修订interface a| interface c仍然是第 1 版(第 2 版中没有孩子)

使用svn ls -v URL/TO/DIR以便看到它。

我的存储库中的分支子树示例

分支节点

>svn ls -v http://mayorat.ursinecorner.ru:8088/svn/Hello/
     37 lazybadg              янв 19  2013 ./
     37 lazybadg              янв 19  2013 branches/
     22 lazybadg              июл 17  2010 tags/
     36 lazybadg              янв 09  2013 trunk/

输出的第一列是该节点的修订版(最新更改) - 对于/branches树,它是 37

真正的分支

>svn ls -v http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/
     37 lazybadg              янв 19  2013 ./
     28 lazybadg              фев 22  2011 Leichtbau-Deutsch/
     37 lazybadg              янв 19  2013 branche-francaise/
     25 lazybadg              сен 14  2010 i18n/

分支有修订版 37,因为branche-francaisesubdir 上次在 37 中更改,但其他子目录有自己的(旧)修订版,您可以获取并测试和比较。

相同的规则适用于存储库树的任何部分,适用于您的树干 - 也

最后说明:使用 Devs 或 Designers 进行部署是坏主意(tm),请记住“MYOB”规则。部署可以(并且必须)自动化以减少延迟和人为错误(提交后挂钩可能是此类工作的良好候选者)

于 2013-07-23T14:40:14.780 回答