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

SVN中的结果代码是什么意思?

svn
  •  281
  • Polsonby  · 技术社区  · 18 年前

    SVN中的结果代码是什么意思?我需要一个快速参考。

    9 回复  |  直到 18 年前
        1
  •  490
  •   bahrep Ahamed    11 年前

    有关更多详细信息,请参阅Svnbook: "Status of working copy files and directories" .

    常见状态:

    U :工作文件已更新

    G :repo上的更改自动合并到工作副本中

    :工作副本已修改

    C :此文件与repo中的版本冲突

    ? :此文件不受版本控制

    ! :此文件受版本控制,但丢失或不完整

    :此文件将添加到版本控制(提交后)

    A+ :此文件将被移动(提交后)

    D :此文件将被删除(提交后)

    S :这表示文件或目录已从工作副本的其余路径(使用svn开关)切换到 分支

    忽略

    X :外部定义

    ~ 类型更改

    R :项目已在您的工作副本中被替换。这意味着计划删除该文件,然后计划在其位置添加一个同名的新文件。

    L :项目已锁定

    e :项目已存在,因为它是由SVN更新创建的。

        2
  •  81
  •   Matt Miller    18 年前

    另请注意,第二列中的结果代码引用了文件的属性。例如:

    U   filename.1
     U  filename.2  
    UU  filename.3
    

    文件名.1:文件已更新
    文件名。2:文件上的一个或多个属性(如svn:keywords)已更新
    文件名.3:文件及其属性都已更新

        3
  •  34
  •   Taryn East    15 年前

    您可以通过运行以下命令来获取列表:

    svn status --help
    
        4
  •  18
  •   Jono D    14 年前

    还有一个“e”状态

    E=更新前存在文件

    如果您手动创建了一个文件夹,而该文件夹是通过执行更新创建的,则可能会发生这种情况。

        5
  •  17
  •   Elie Xu    14 年前

    我想谈谈“G”的地位,

    G:回购的变更自动合并到工作副本中。

    我认为上面的定义不清晰,可能会造成一些混乱,因为所有文件都自动合并到工作副本中,正确的定义应该是:

    U=更新到存储库版本的项目(U)

    G=与存储库一起编辑的项目本地更改

    C=项目本地更改(C)与存储库冲突

    d=从工作副本中删除的(d)项

    A=添加到工作副本的项目(A)

        6
  •  12
  •   UberAlex    13 年前

    我通常通过一个GUI使用SVN,无论是我的IDE还是客户机。因此,当我不得不求助于命令行时,我永远记不起这些代码。

    我觉得这个练习表很有帮助: Subversion Cheat Sheet

        7
  •  12
  •   bahrep Ahamed    10 年前

    请看一下Subversion Book参考: "Status of working copy files and directories"

    强烈推荐任何一个使用SVN做任何事情的人。

        8
  •  9
  •   Spyryto    9 年前

    SVN状态列

    $ svn status
    L index.html
    

    命令的输出分为六列,但这并不明显,因为有时列是空的。也许用破折号来表示空列更有意义 ls -l 是的,而不是什么都没有。然后,例如, L index.html 看起来像 --L--- index.html 这就使得我们在第三列中得到的唯一信息很明显,即关于锁定的信息。不管怎样,一旦你知道它开始变得更有意义。

    SVN状态第一列:A,D,M,R,C,X,I,?!,~

    第一列指示添加、删除或以其他方式更改了项。

       没有修改。

     A 计划添加项。

     D 项目已计划删除。

     M 项已被修改。

     R 您的工作副本中的项目已被替换。这意味着计划删除该文件,然后计划在其位置添加一个同名的新文件。

     C 项目的内容(而不是属性)与从存储库接收的更新冲突。

     X 项与外部定义相关。

     I 正在忽略项(例如,使用svn:ignore属性)。

     ? 项不受版本控制。

     ! 项目丢失(例如,您在不使用SVN的情况下移动或删除了它)。这还表示目录不完整(签出或更新被中断)。

     ~ 项目版本化为一种对象(文件、目录、链接),但已被不同类型的对象替换。

    SVN状态第二列:M,C

    第二列说明文件或目录属性的状态。

    没有修改。

    已修改此项目的属性。

    C 此项目的属性与从存储库接收的属性更新冲突。

    SVN状态第三列:L

    只有当工作副本目录被锁定时,才会填充第三列(SVN清理通常足以清除它)。

    项目未锁定。

     L 项目已锁定。

    SVN状态第四列:+

    只有在计划用历史记录添加项时,才会填充第四列。

    没有计划提交的历史记录。

     + 使用提交计划的历史记录。

    SVN状态第五列:S

    仅当工作副本的项相对于其父列进行切换时,才会填充第五列。

    项是其父目录的子目录。

     S 项目被切换。

    SVN状态第六列:K、O、T、B

    第六列填充了锁信息。

    使用“显示更新”时,文件不会被锁定。如果不使用“显示更新”,这只意味着文件未锁定在此工作副本中。

     K 文件已锁定在此工作副本中。

     O 文件被另一个用户或另一个工作副本锁定。仅当使用“显示更新”时才会显示此消息。

     T 文件已锁定在此工作副本中,但该锁定已被窃取并且无效。文件当前锁定在存储库中。仅当使用“显示更新”时才会显示此消息。-

     B 文件在此工作副本中被锁定,但该锁定已被破坏并且无效。该文件不再被锁定,仅当使用“显示更新”时才会显示。

    SVN状态第七列:*

    过期信息将显示在第七列(仅当通过“显示更新”开关时)。这是SVN新手所期望的命令,他们没有意识到这只会将文件的当前状态与上次更新时从服务器获取的信息进行比较。

    您的工作副本中的项目是最新的。

     * 服务器上存在该项的更新版本。

        9
  •  7
  •   Alan    10 年前

    当您无法访问文档时( SVNBook ,类型(Linux):

    svn help status | grep \'\?\'
    svn help status | grep \'\!\'
    svn help status | grep \'\YOUR_SYMBOL_HERE\'
    

    或者在~/.bashrc文件中插入以下函数,如下所示:

    svncode() {
      symbol=$1
      [ $symbol ] &&  svn help status | grep \'$(echo $symbol)\' || \
      echo "usage: svncode <symbol>"
    }
    

    enter image description here