Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Subversion:需要找出存储库中被忽略的内容_Svn_Mercurial - Fatal编程技术网

Svn Subversion:需要找出存储库中被忽略的内容

Svn Subversion:需要找出存储库中被忽略的内容,svn,mercurial,Svn,Mercurial,大局: 我正在使用一个SVN代码库,我希望有一个本地Mercurial存储库用于本地版本控制。在创建Mercurial存储库时,我想知道SVN将忽略哪些文件(例如创建的临时文件等) 我真正想要的是找到那些被忽略的模式。因此,如果SVN被告知忽略*.sdf,我不希望看到它忽略的所有sdf文件。我想看看*.sdf,这样我就可以把它放在我的.hgignore文件中 这可能吗 谢谢 您可以在目录结构中递归调用svn propget svn:ignore 首次破解解决方案(在bash中)类似于: svn

大局:

我正在使用一个SVN代码库,我希望有一个本地Mercurial存储库用于本地版本控制。在创建Mercurial存储库时,我想知道SVN将忽略哪些文件(例如创建的临时文件等)

我真正想要的是找到那些被忽略的模式。因此,如果SVN被告知忽略*.sdf,我不希望看到它忽略的所有sdf文件。我想看看*.sdf,这样我就可以把它放在我的.hgignore文件中

这可能吗


谢谢

您可以在目录结构中递归调用
svn propget svn:ignore

首次破解解决方案(在bash中)类似于:

svn list -R | xargs -I{} svn propget svn:ignore {}
但这是:

  • 不显示忽略模式的目录
  • 还将尝试获取文件的svn:ignore属性,这没有意义
  • 更新

    更好的解决方案,但不如懒惰獾的:

    #/usr/bin/python
    导入操作系统
    导入子流程
    #运行命令并将输出存储在变量中,拆分为换行符上的列表
    路径=子进程。检查_输出(['svn','list','-R'])。拆分行()
    对于路径中的路径:
    #[-1]是“字符串中最后一个字符”的Python表示法,因此。。。
    #查找尾部路径分隔符以指示“目录”
    如果路径[-1]==os.sep:
    忽略=子进程。检查_输出(['svn','propget','svn:ignore',path])
    如果忽略:
    打印路径
    打印忽略
    
  • 安装hgsubversion扩展
  • 将SVN回购克隆为Mercurial回购
  • 使用
    hg svn genignore
    构建。hgignore from
    svn:ignore
    树中的定义
  • 检查生成文件的内容,修复可能的错误,不要忘记提交到Mercurial中

    样品 如果我有这样的存储库(糟糕且丑陋,但适合测试)
    svn:忽略树中的

    WC>svn pg svn:ignore -v -R
    Properties on '.':
      svn:ignore
        *.bak
        *.tmp
    
    Properties on '1':
      svn:ignore
        *.bak
        *.tmp
        *.dbg
        *.raw
    
    Properties on '1\2':
      svn:ignore
        *.bak
        *.tmp
        *.dbg
        *.raw
        *.1bg
    
    生成的
    .hgignore

    .hgignore
    syntax:glob
    *.bak
    *.tmp
    1/*.bak
    1/*.tmp
    1/*.dbg
    1/*.raw
    1/2/*.bak
    1/2/*.tmp
    1/2/*.dbg
    1/2/*.raw
    1/2/*.1bg
    
    显然,可以而且必须对其进行优化和压缩。N

    注 如果在SVN 1.8+中使用,SVN:global忽略(首选,可读性更好)

    当前Mercurial | HGSubversion在genignore中不使用并忽略此属性

    附注2
    至少Mercurial 2.11无法克隆本地(
    文件:///
    )Subversion 1.8+存储库,它们必须由httpd或svnserve提供服务。他们没有尝试过,但这看起来肯定更懒(在本例中更好):@lazybacker啊,甚至更好。我不知道propget支持递归选项。谢谢分享,我很高兴现在知道了。
    WC>svn pg svn:global-ignores -v -R
    Properties on '.':
      svn:global-ignores
        *.bak
        *.tmp
    
    Properties on '1':
      svn:global-ignores
        *.dbg
        *.raw
    
    Properties on '1\2':
      svn:global-ignores
        *.1bg