【问题标题】:git svn fetch specific directorygit svn 获取特定目录
【发布时间】:2017-08-08 15:50:32
【问题描述】:

是否可以使用 git svn 获取特定目录?我正在尝试获取与“主干/路径”中的名称“XYZ”匹配的多个目录。 “XYZ”在多个路径中。

git svn init --stdlayout --no-minimize-url --trunk=trunk/Path

git svn fetch  --revision 1234:HEAD --authors-file=authors.txt --include-paths="^.*trunk\/subdirpath1/XYZ" 
git svn fetch  --revision 1234:HEAD --authors-file=authors.txt --include-paths="^.*trunk\/subdirpath2/XYZ" 
git svn fetch  --revision 1234:HEAD --authors-file=authors.txt --include-paths="^.*trunk\/subdirpath3/XYZ" 

【问题讨论】:

  • 这篇文章没有展示如何获取与 repo 中名称“XYZ”匹配的多个目录。 “XYZ”可以在“trunk/Path”中的不同路径
  • 这是一个perl正则表达式,所以你可以指定一个模式。

标签: git svn version-control fetch git-svn


【解决方案1】:

是的,您可以获取特定目录。详细步骤如下:

1。在.git/config 中添加包含路径。

打开.git/config 文件在[svn-remote "svn"] 下添加include-paths = /path/to/specify。所以配置文件看起来像:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[svn-remote "svn"]
    include-paths = subdirpath1/XYZ|subdirpath2/XYZ|subdirpath3/XYZ
    url = https://url/for/svn/repo
    fetch = trunk:refs/remotes/origin/trunk
    branches = branches/*:refs/remotes/origin/*
    tags = tags/*:refs/remotes/origin/tags/*

注意:include-paths 的路径应该包含您要获取的所有路径。比如有trunk/subdirpath4/XYZ的目录,你也应该把它添加到config文件中。

2。使用--include-paths 选项为git svn fetch 获取相关路径:

git svn fetch --include-paths="subdirpath1/XYZ|subdirpath2/XYZ|subdirpath3/XYZ"

然后它会获取相关的svn版本。

【讨论】:

  • 如果我必须更新包含路径和忽略路径,我该怎么做。我尝试使用 vim .git/config 直接编辑 .git/config 但是 git svn fetch 没有得到我正在寻找的目录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 2014-12-29
相关资源
最近更新 更多