当前位置:  开发笔记 > 开发工具 > 正文

以编程方式告诉git-svn和git repos之间的区别?

如何解决《以编程方式告诉git-svn和gitrepos之间的区别?》经验,为你挑选了2个好方法。

我有一些shell设置动态定义别名取决于CWD包含什么类型的VC repo - 例如,'d'运行'svn diff'或'git diff',具体取决于.(根据这篇博客文章,如果有人有兴趣...)

我想根据我是否使用git repo而不是git-svn repo来定义一些别名.有没有一种简单的方法来区分两者之间的区别?



1> codelogic..:

您可以使用git config命令的输出来区分git和git-svn repo.

git config --get svn-remote.svn.url

应该返回正在同步的svn URL,如果有的话.



2> Pieter..:

在决定哪些存储库完全是git-svn存储库时,您应该小心一点.存储库可能包含多个svn存储库.

只有在使用-s或--std-layout选项克隆svn存储库时,Kafka的解决方案才有效,其中实际上一个分支trunk.

Codelogic的答案只有在有一个svn存储库被调用时才有效svn- 没有要求这是真的.

最简单的检查方法,如果有一个SVN远程的配置是:

$ git config --get-regexp ^svn-remote

这将找到任何配置的git-svn存储库,无论它们被调用.如果匹配则它将以状态0退出,如果没有匹配则退出1.

但是,这并不意味着真正使用了svn存储库.也许某人已导入svn存储库,但使用的是子模块或子树合并,甚至根本不使用.如果已打开git-svn存储库中的元数据,则可以通过使用以下内容查看当前HEAD中是否已使用任何svn修订:

$ git rev-list -1 --grep='git-svn-id' HEAD

但这可能有点过于复杂.你决定.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有