dm3*_*dm3 6 svn git mercurial gateway
目标是Hg
在完全转换为Hg之前为SVN 制作一段前端.
设置可能看起来如下所示(与上面提到的问题相同),但是我不确定中间Hg存储库的确切拓扑.
Dev1 Hg --> Hg <--> SVN
Dev2 Hg -/
Run Code Online (Sandbox Code Playgroud)
我知道上面的设置可以使用git
并且git-svn
如本评论中所述:
Dev1 Git --> Git (bare) <--> Git (bridge) <--> SVN
Dev2 Git -/
Run Code Online (Sandbox Code Playgroud)
建立:
无论是SVN
git svn init
还是git svn clone
SVN.然后它成为"Git/SVN Bridge".修复任何分支,标签等...这里.该
svn/*
裁判被认为是遥控器,所以如果你想跟踪分支,检查这些遥控器出来,并创建相应的地方分支机构.另外,检查标签,并创建实际标签.您必须为要在Git和SVN之间同步的任何SVN分支创建本地分支.现在,在
git init
某处创建一个新的裸存储库(),并从桥中将所有分支推送到裸存储库(git push –tags
).所有Git用户现在克隆这个裸存储库.该桥只由一个(或几个)了解如何同步Git和SVN的人维护.
要通过网桥更改主服务器上的SVN中继,反之亦然:
git svn fetch
(获取新的SVN更改)
git checkout master
git pull master
(从裸仓库中获取Git更改)
git checkout svn/trunk
(结账分离头)
git merge –no-ff –log master
(合并来自master的更改).–no-ff
确保实际提交,–log
从主服务器上的每个提交中复制单个日志消息(–log
是可选的).如果要编辑提交消息,则可以运行git commit -amend.
git svn dcommit
(这会将您的合并提交推送到SVN.请注意,提交位于分离的头上,不再可访问).您在master上的所有工作(因为master和merge的合并基础svn/trunk
)都作为单个更改提交,现在可供SVN用户使用.
git checkout master
git merge svn/trunk
(从SVN获取新的更新 - 使用更改的提交消息 - 并合并到master)
git push barerepo
(使GN用户可以使用SVN更改)
我不知道的是,是否有可能以某种方式在Hg上复制上述内容.正如我所看到的(我是Git的中间用户并且了解使用Hg的基础知识),Hg的障碍是:
hgsubversion
上面的列表中的步骤n.6推送合并提交.什么停止hgsubversion
做什么svn dcommit
?)是否有可能使Hg-SVN网关以与Git-SVN网关相同的方式工作?如果不是,为什么?
归档时间: |
|
查看次数: |
604 次 |
最近记录: |