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

如何使用git svn设置Subversion属性

  •  35
  • Black  · 技术社区  · 15 年前

    有没有一种方法可以在Git SVN创建的Git存储库上设置Subversion属性?

    在我的情况下,我想编辑 svn:external , svn:ignore svn:executable .

    然而,这样做的唯一方法似乎涉及到与颠覆客户的结帐。有没有一种方法可以在不签出存储库的情况下编辑SVN属性(一次用于Git,一次用于SVN属性)?

    5 回复  |  直到 10 年前
        1
  •  17
  •   Tim Abell    12 年前

    git-svn 不支持Subversion属性。当我遇到这个问题时,我通常会有两次退房。

    这在 git-svn 错误下的文档:

    我们忽略除svn:executable之外的所有svn属性。任何未处理的属性都记录到 $GIT_DIR/svn/<refname>/unhandled.log

        2
  •  22
  •   VonC    10 年前

    注:Git 2.3.0(2015年2月)支持Proset git svn .
    commit 83c9433 通过 Alfred Perlstein ( splbio ) :

    git-svn 支持 git-svn propset

    这个变化允许 GIT-SVN 以支持设置Subversion属性。

    当提交到subversion repo时,它对于手动设置属性非常有用, 要求 要设置的属性,无需将变更集移动到单独的Subversion签出即可设置属性。

    有一点需要指出: 代码不支持添加props,除非对文件也进行了内容更改。 .
    这在测试用例中得到了演示。

    所以,正如在 t/t9148-git-svn-propset.sh ,现在可以工作了:

    git svn propset "$1" "$2" "$file" 
    # like
    git svn propset "svn:keywords" "FreeBSD=%H" "foo"
    
        3
  •  5
  •   David Fraser piouson    15 年前

    开始使用补丁来支持 git svn propset 在这里: git svn propset support

        4
  •  3
  •   Dmitry Pavlenko    12 年前

    有可能,只需克隆您的SVN存储库 SmartGit . 它将svn:executable、svn:externals和svn:ignore转换为executable、.gitsvnextmodules和.gitignore。因此,您可以修改它们并向后推,这将导致相应的属性修改。

    如果您有权访问SVN服务器,则可以安装 SubGit 进入它。它在服务器端转换svn:executable和svn:ignore,为您的svn存储库提供Git接口。

        5
  •  2
  •   user3361691    10 年前

    您也可以使用 svnmucc ,以防您不想有一个完整的SVN结帐只是为了设置道具(我的远程回购非常大)。

    下面是我的命令,用于向svn添加一行:忽略、替换url、dir和value。

    svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR