【问题标题】:git aware but (remote) svn ignoregit 知道但(远程)svn 忽略
【发布时间】:2011-06-04 15:58:16
【问题描述】:

我在 google 代码上有一个公共托管的 svn 存储库,但是由于各种原因,我在本地切换到了 git。我目前是唯一可以访问 googlecode 存储库的开发人员,因此无需进行获取。所有提交都通过一个 dev 分支,到 svn 的 master 分支,使用git svn dcommit。一切安好。现在我的情况是,我在本地使用 git 进行版本控制,但我不希望它们公开可用。

所以我有了一个想法:我创建了一个私有目录,并在我的 svn 存储库中添加了一个 svn:ignore "private/*" 属性。但比之后

git svn dcommmit

我收到一个错误:提交期间合并冲突:文件或目录 '.'已过期;尝试更新:资源过期;尝试在 /usr/local/git/libexec/git-core/git-svn 第 574 行更新

我尝试将 svn:ignore 属性导入 .git/info/exclude ,但这从 git 中排除了我在“私有”中的所有 git 文件,这绝对不是我想要的。

[08-06-2011]

我认为错误不是因为 svn:ignore,似乎 git svn 完全忽略了 svn:ignore,而是由于其他一些未知的原因。问题变成了:是否可以从git svn dcommit 中排除路径,就像可以使用--ignore-path 从git svn fetch 中排除路径一样

【问题讨论】:

  • 在您添加该属性后尝试拉取和合并?
  • 确实做到了:git svn rebase / git svn fetch,不确定 pull 是如何与 git-svn 一起工作的?
  • 我的意思是获取,抱歉。在黑暗中拍摄,看看是否有快速简便的出路;看起来这是一个 git pro 的。不过,这是一个很好的问题,所以 +1。
  • 不要忘记停止“关注”公共仓库中的那些私人文件。

标签: git git-svn svnignore


【解决方案1】:

git-svn 忽略 svn:ignore 但SmartGit 不会,如果您使用 SmartGit 签出您的存储库。它将其转换为相应的 .gitignore 文件,反之亦然。 所以我建议你使用 SmartGit 而不是 git-svn。

【讨论】:

    【解决方案2】:

    git-svn man 页面表明这可以通过以下配置键实现:

    svn-remote.<name>.ignore-paths
    

    【讨论】:

    • 感谢您的回答,我想我在探索过程中也看到了这面旗帜。当时我将它作为一种单向块来阅读:来自 svn -> git。 This allows one to specify a Perl regular expression that will cause skipping of all matching paths FROM CHECKOUT FROM SVN. The --ignore-paths option should match for every fetch (including automatic fetches due to clone, dcommit, rebase, etc) on a given repository.我又重读了一遍,我仍然坚持我原来的信念,但是英语不是我的母语,一般我倾向于误读手册页(尤其是 git 的)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多