【问题标题】:Clone a git-svn repo by getting all of the svn part from the original svn repo通过从原始 svn 存储库中获取所有 svn 部分来克隆 git-svn 存储库
【发布时间】:2011-04-14 10:30:35
【问题描述】:

如何从我的笔记本电脑(在家)将 git 存储库克隆到服务器(在大学),同时从作为主要代码库的另一个 uni 的第三个 (svn) 存储库获取大部分存储库。我想通过最大化 uniOneuniTwo 流量来最小化家庭uni 流量。

这是我现在在笔记本电脑上的:

--o--o--o---o---o---o git-svn trunk  
         `--o--o-o--o git mybranch  

这就是我想在 uniOne 上获得的:

--o--o--o---o---o---o git-svn trunk <-- from uniTwo  
         `--o--o-o--o git mybranch  <-- from Laptop

克隆后,repo 应该能够从笔记本电脑中提取分支。

我尝试过:在 uniOne 上:git-svn clone uniTwo,git remote add 笔记本电脑,但是 git fetch 想从笔记本电脑上获取全部内容。我想也许使用 git clone --depth x Laptop 然后将它们移植在一起可能会起作用,但它仍然需要传输所有源文件 Laptop->uniOne,而不仅仅是更改。我可以尝试从笔记本电脑导出所有补丁并将它们应用到新的 svn 结帐之上,然后让它跟踪我的笔记本电脑上的分支(如果可能的话),但是等到我下一个在 uni 然后会更容易正常克隆就好了。

【问题讨论】:

  • 您对 uniOne/uniTwo 的描述有点混乱。您能否更新和澄清一下?到目前为止,这是我的理解:你的大学有一个 Subversion 存储库,你必须与之交互。您想将这个 SVN 存储库中的一个项目克隆到一个 Git 存储库中,您可以将其带回家笔记本电脑上,对吧?
  • 有两个 uni:一个带有 svn repo (uniTwo),另一个我可以访问大型计算机时间 (uniOne)。我在笔记本电脑上开发模拟并在 uniOne 上运行它们。关键是我家里的笔记本电脑上传速度很慢,而且三台电脑都相距很远。在 uniOne 上,我希望能够从笔记本电脑中提取,但尽可能从 uniTwo 的 svn 存储库中获取。

标签: linux git git-svn clone fetch


【解决方案1】:

让我们定义您的存储库:

  • git-svn
  • uni/master
  • laptop/master

我建议以下设置:

通过 git-svngit svn clone 创建 uni/master。 通过运行git svn rebase(使用提交挂钩、cron-job 或每次手动触发'在大学)。

通过克隆 uni/master 来创建 laptop/master。在这里,您可以根据需要随时在本地提交。当你在大学时,通过运行git pull --rebaseuni/master 获取最新的变化(你总是必须做 --rebase 以保持历史线性,因为 SVN 不会理解 git-branches) .

当您想将更改从您的笔记本电脑推送回 git-svn 时,您必须首先在您的 laptop/master 上配置 git-svn 远程: p>

git svn init https://url.to.uni-svn-repo

现在您可以使用 git svn dcommit 将您的最新更改推送回 uni-svn。请注意,您可能必须首先在 uni/master 中更新对最新提交的引用。第一:

git update-ref refs/remotes/git-svn refs/remotes/uni/master

请勿尝试从您的 laptop/master 推送到 uni/master。这只会带来混乱,因为当 Git 再次尝试与 git-svn 同步时,变基/重写历史只会让 Git 感到困惑。

另请参阅http://www.tfnico.com/presentations/git-and-subversion,在那里我开始收集大量使用 Git 和 SVN 的技巧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2011-10-16
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多