如果文件多次提交并进行了各种更改,我如何一次获取一个更改,即一次更改一个?
我使用eclipse,subversion和subclipse,暂时无法改变前两个(或MS平台......)。
在eclipse中的Team / Synchronization视图中(使用subclipse),选择变更集模型,即使列出了所有变更集,也只会在最新的相关变更集中列出文件。因此,早期的变更集不一定显示原始提交中的完整文件集,也不一定显示提交中文件的原始差异。
更新:我正在考虑使用变更集来简化代码审查,因此我希望代表在一个变更集中提交的所有文件的部分更新。在eclipse中很容易获得特定文件的差异和特定修订,但我想以实际的方式逐步完成一个特定提交/变更集中的所有更改。
答案 0 :(得分:0)
我相信你知道,svn up
默认会获取该文件的最新版本。
但是,您可以使用-r
参数svn up
来获取文件的特定修订版。因此,如果您知道在修订版本5,7和9中提交了文件,则可以执行此操作:
svn up -r5 myfile
svn up -r7 myfile
svn up -r9 myfile
我相信(但我没有在我面前安装它)Subclipse有类似的选项,标记为“更新到修订版本......”
答案 1 :(得分:0)
Subversion不支持原子变更集。
(注意:如果有人能证明我错了,我会乐意转换接受的答案。)
我使用TortoiseGit和TortoiseSVN比较了Git和Subversion(并查看了命令行上的可能性)。
使用Svn和Git,我可以更新到某个版本,或者一次只能查看和更新到一个文件的不同版本。
使用Tortoise客户端,我可以从存储库中查看单个提交(修订版),并查看修订版和先前版本之间的更改。 (请注意,我似乎无法在Eclipse中执行此操作,请参阅问题。)
但是,只有使用Git,我才能更新或挑选一个孤立的提交。我在Subversion中看到的最接近这个功能的是update to head and then revert a certain revision带有“减法合并”......
测试设置:制作项目,签出或克隆项目,从其他地方对存储库进行2次单独提交,包括至少一个在两次提交中都被修改的文件。 然后,使用Git:获取远程更改。 然后,使用Git和Subversion:查看日志。