簡體   English   中英

Subgit:避免將git分支同步到svn上

[英]Subgit: avoid to synchronize git branches onto svn

我正在嘗試使用SubGit但是我遇到了分支的問題:我希望在Git下創建的分支只能在Git中生存和死亡。 我發現了這個: SubGit:如何排除分支? ,但它說

麻煩來自合並提交:如果提交A是將分支foo合並到主服務器的結果,則SubGit在Subversion端為commit A的相應父服務創建分支/ foo。 如果您不希望將SubGit生成的分支包含到branches / * namespace中,請考慮在Subversion端使用一些特殊的分支

我不想搞亂SVN,因為我正在評估Subgit而且我不想在SVN上做任何改變。 我想我可以在推送到Git存儲庫之前通過重新定位來實現我的目標(意思是,僅提交SVN合並歷史而不是git分支),但我擔心這會在返回SVN時導致沖突。 關於如何解決這個問題的任何想法,而不是等待SubGit 2.1版(聲稱做我想要的但不是在不久的將來 - 來自鏈接的答案: it's going to take some time before we implement it )?

SubGit僅同步您在SubGit配置文件中指定的分支。 默認情況下,它們是:

    trunk = trunk:refs/heads/master
    branches = branches/*:refs/heads/*
    shelves = shelves/*:refs/shelves/*
    tags = tags/*:refs/tags/*

因此,如果您使用另一個命名空間,例如refs / heads / nosync / *,則其中的分支將不會同步。

或者您可以將refs / heads / *用於普通分支(不同步)並設置特殊的refs / heads / sync / *命名空間以進行同步:

    trunk = trunk:refs/heads/sync/master
    branches = branches/*:refs/heads/sync/*
    shelves = shelves/*:refs/shelves/*
    tags = tags/*:refs/tags/sync/*

請注意,長分支名稱(如refs / heads / sync / master)不會帶來不便,因為在克隆此類Git存儲庫后,您可以使用短名稱分配自己的本地refs / heads / *分支來跟蹤具有長名稱的分支從一個或另一個命名空間。 這就是為什么我認為這對你來說是一個很好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM