我是SVN的新手,多年来一直使用SourceSafe和家庭酿造解决方案。
我们都已经完成了,我有很多编辑后的文件没有先检出。有没有办法可以:
我使用TortoiseSVN。
答案 0 :(得分:1)
SourceSafe和SVN使用不同的术语。你称之为"结账"在SourceSafe中,在SVN中称为锁定文件。
但SVN并不(通常)要求您锁定文件以使用它们,因为它使用乐观锁定方法。也就是说,它假定文件在提交时可以合并。这通常适用于纯文本文件,如果两个人对同一文件的同一部分进行了更改,则需要手动合并。
这比VSS的模型更好 更好的工作方式,因为这意味着当其他人去度假时,您无法锁定文件。
你真的应该阅读Part I of the Subversion manual以确保你理解Subversion的操作模型。如果你试着像VSS一样使用它,它会受到伤害。
使用Subversion a" checkout"只是将存储库的一部分副本提取到工作站进行更改。它不会更改存储库的状态,也不会专门锁定文件供您使用。
所以你的操作应该是:
答案 1 :(得分:0)
简短的故事是检查一个新的工作副本以获取最新的.svn文件夹,然后用本地活动工作副本替换文件夹内容,并提交差异。
如果您在本地添加的文件与已添加到svn存储库的文件完全相同,并且文件是文本(即非二进制),则只需执行svn update
,本地文件将是"版本" (由svn。
如果本地文件不同且是文字,则svn update
应该再次对文件进行版本设置,之后您可以svn commit
进行更改。
如果有疑问,请首先制作版本化文件夹的本地副本,然后查看会发生什么。如果你有备份,你不会受到伤害。
然而,最安全的方法是检查相关文件夹的新副本。然后从svn delete
文件夹中删除该文件夹中的所有内容(不是.svn
!)。既然你有TortoiseSVN,你可能会使用Windows,所以我的意思是在资源管理器中,选择除.svn
以外的所有内容并按删除。然后将您的工作文件和文件夹复制到该文件夹中并提交更改。您可能想知道这是如何工作的 - .svn
文件夹包含远程存储库中存在的文件的原始副本,因此能够比较您的本地工作文件和文件夹以找出已更改的内容。
当您commit确保勾选方框"显示无版本文件"包括在本地创建但尚未版本化的任何新文件,然后单击"全部"包括所有更改,包括提交中的任何新文件。