以下是我们遇到的问题:
开发人员将在他的沙箱中检出主干。我们创建了一个切换脚本,用于将某些文件切换到正在进行更改的分支。有时交换机脚本似乎失败,开发人员检查他的更改。这些更改显示在修订日志中,但我们无法确定它们是否已检入分支或主干。他们似乎迷失在开发者的盒子里。这会导致大量的来回切换,并且通常当它发生很小的变化时,它只会被重新编码。
所以我的问题是,我们如何判断修订的分支是什么?
答案 0 :(得分:2)
使用Tortoise,我提取了一个我修改过的程序的日志。
我强调了行动和路径。该路径向我显示了在哪个分支上修改了什么。
答案 1 :(得分:1)
如果您没有使用TortoiseSVN,您可以获得详细的svn日志:
svn log --verbose -r HEAD
这将显示提交中所有文件的svn位置(就像@Gilbert Le Blanc的回答一样)。示例输出如下。如果您需要不同的内容,请将HEAD
更改为特定版本。
------------------------------------------------------------------------
r556 | USER | 2012-08-30 13:37:35 -0500 (Thu, 30 Aug 2012) | 1 line
Changed paths:
M /trunk/Path/File.cs
Commit Comment
------------------------------------------------------------------------
答案 2 :(得分:1)
修订是按树进行的,因此首先需要获取修订版的“更改”
svn diff -r <start revision>:<end revision> --summarize <root svn URL>
可能产生输出,如
A file:///home/xxx/svn/yyy/trunk/src/main/java/com/proj/App.java
A file:///home/xxx/svn/yyy/trunk/src/main/java/com/proj
A file:///home/xxx/svn/yyy/trunk/src/main/java/com
A file:///home/xx/svn/yyy/trunk/src/main/java
A file:///home/xxx/svn/yyy/trunk/src/main
A file:///home/xxx/svn/yyy/trunk/src
A file:///home/xxx/svn/yyy/trunk/pom.xml
M file:///home/xxx/svn/yyy/trunk
分支在SVN中实现为目录,因此您需要确定项目的根目录,以及考虑哪些直接子目录(按照惯例)“分支”
在上面的例子中
file:///home/xxx/svn/yyy/
被认为是项目的“根”网址,因此从
中减去file:///home/xxx/svn/yyy/trunk
告诉我,检查过的“分支”是
trunk
请注意,其他项目已在
中签入trunk/src/main/java/com
但我的约定 分支 由于什么是分支的决定是传统的,最后确定哪些分支受到影响将需要了解您的特定SVN设置。在我的情况下
branches/branchA
被我自己认为是一个分支(对于我的项目),但是
branches/branchA/src
不被视为分支。