代码之家  ›  专栏  ›  技术社区  ›  Jeremy

提交尚未签出的文件

  •  0
  • Jeremy  · 技术社区  · 7 年前

    我是SVN的新手,多年来一直使用SourceSafe和自制解决方案。

    我们都做过了,我有很多编辑过的文件没有先签出。我有没有办法:

    1. 尽管文件未签出,但强制提交
    2. 签出而不覆盖已更改的文件
    3. 另一种方法?

    我用乌龟。

    2 回复  |  直到 7 年前
        1
  •  1
  •   alroc    7 年前

    SourceSafe和SVN使用不同的术语。在SourceSafe中所谓的“签出”被称为 锁定 SVN中的文件。

    但是SVN(通常)不要求您锁定文件来处理它们,因为它使用乐观锁定方法。也就是说,它假设文件在提交时可以合并。这通常适用于纯文本文件,如果两个人对同一文件的同一部分进行了更改,则需要手动合并。

    这是一个 比VSS的模型更好的工作方式,因为这意味着当其他人休假时,您不能被锁定在文件之外。

    你真的应该读书 Part I of the Subversion manual 确保您了解Subversion的操作模型。如果你试着像VSS一样使用它,那会很痛苦。

    对于Subversion,“签出”只是将存储库的一部分的副本拉到您的工作站上,以便对其进行更改。它不会更改存储库的状态,也不会专门锁定文件供您使用。

    因此,您的操作应该是:

    1. 签出一个工作副本(如果您已经有了,请更新它)
    2. 进行更改
    3. 犯罪
    4. 重复
        2
  •  0
  •   Stephen Kennedy annamataws    6 年前

    短篇小说是签出一份新的工作副本以获得一份。最新的svn文件夹,然后用本地活动工作副本替换文件夹内容,并提交差异。


    如果您在本地添加的文件与添加到svn存储库的版本完全相同,并且文件是文本(即不是二进制文件),只需执行 svn update 并且本地文件将由svn进行“版本控制”(在当前存储库版本级别被识别为存在且正确)。

    如果本地文件不同且为文本,则 svn更新 应再次对文件进行版本设置,之后您可以 svn commit 找你的钱。

    如果有疑问,请先制作一个版本化文件夹的本地副本,然后查看发生的情况。如果你有备份,你不会有什么坏处。

    然而,最安全的方法是签出有问题文件夹的新副本。然后从该文件夹中删除所有内容(不是 svn delete !)除了 .svn 文件夹既然您有陆龟VN,那么您可能正在使用Windows,所以我这里的意思是在Explorer中,选择除 。svn公司 然后按 删去 。然后将工作文件和文件夹复制到该文件夹中并提交更改。您可能想知道这是如何工作的 。svn公司 文件夹包含远程存储库中存在的文件的原始副本,因此可以比较本地工作文件和文件夹,找出发生了什么变化。

    当你 commit 请确保勾选“显示未版本化文件”框,以包括本地创建的任何尚未版本化的新文件,然后单击“全部”以包括所有更改,包括提交中的任何新文件。

    enter image description here