SVN全球和本地版本

时间:2013-07-23 13:07:17

标签: svn version-control tortoisesvn

我想在trunk文件夹中设置一个包含7个不同接口的7个目录的SVN。

有时我必须对其中一个接口进行更改,但是当我这样做时,所有文件夹的修订号都会增加。

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

或者这不可能吗?

e.g。

trunk(rev 1)

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

我对界面b进行了更改,然后变为

trunk(rev 2)

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

因此,当设计人员/开发人员看起来他们可以在系统的最新迭代中看到只有一个已更改的接口。因此,他们可以忽略其他人,只是将改变部署到现场环境中。

1 个答案:

答案 0 :(得分:2)

  

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

什么都不做,只是以正确的方式理解并使用Subversion:

SVN-tree中每个节点的修订是所有节点的子节点的最新版本,即在您的情况下,在提交到interface b(作为修订版2)目录/ trunk之后还有rev 2,接口b - rev 2,但interface a | interface c的最后更改版本仍为rev 1(他们在rev 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-francaise subdir上次更改为37,但其他子目录具有自己的(较旧的)修订版本,您可以获取并进行测试和比较。

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

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