我有一个私有分支,进行了大量提交,然后将其合并到主干中,并在那里进行了一些微小的调整。
现在主干维护者希望获得我所有更改的差异,以防需要回滚。
我该如何创建这个差异?如果您需要示例数字,请假设
224446
是我合并到主干中的主要修订版本,
224453
和224462
是我的次要修复程序,在我的私有分支中进行了无数次更改。
一个选项是在224446处创建分支,然后合并224453和224462。然后在主干上将其与224445的差异进行比较。这应该是所有更改的总和,如果需要,可以将其创建为补丁文件:
# Branch from your initial checkin
svn cp svn://xyz/trunk@224446 svn://xyz/branches/foo
# Check it out
svn checkout svn://xyz/branches/foo tmp
# Merge in the two changes
svn merge -c 224453,224462 svn://xyz/trunk tmp
# Commit the changes
svn commit tmp -m "Extra commits 224453 and 224462"
# Diff the branch from mainline before original
svn diff svn://xyz/trunk@224445 svn://xyz/branches/foo
这与马丁的回答基本相同,只是应用更改和获取差异的方式不同。请注意,虽然在此情况下我已经提交了更改,但您并不一定要这样做 - 您可以仅执行 svn diff svn://xyz/trunk@224445 tmp
而不是最后两个命令。将其放在存储库中的好处是任何人都可以将差异反向应用来回滚,如果需要的话。
svn co svn://xyz/trunk@224446 tmp
。即使您没有直接更改存储库的权限,这也可以正常工作。 - Thomas S. Trias
svn diff -r 224461:224462 > ~/tmp/diff.2
吗? - Muhd