LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2665|回复: 20

关于git和svn的同步!

[复制链接]
发表于 2010-7-1 11:13:10 | 显示全部楼层 |阅读模式
关于git和svn的同步!

本人公司是一个家外企,目前使用svn管理代码,现在遇到一个问题,就是美国访问北京的svn库比较慢,所以我们想如果在美国建立一个代码管理服务器,和北京进行同步,平时工作的时候美国人用美国的,中国的用中国的,双方都不工作的时候,两个服务器进行meger,但是svn的同步功能是单向的,美国那边有人提议用git,我想请教下。git可以做到这种功能吗!

另外,git的权限管理据说只能精确到库,是这样吗?
发表于 2010-7-1 11:22:54 | 显示全部楼层
svn 是集中式版本管理系统,适合企业使用。
git 是分布式版本管理系统,适合开源项目使用。

就权限控制方面而言,目前的分布式系统都比不上 svn 的。但是,以 svn 为基准,可以用 git 桥。

就你这个例子,用 git 是可以的。或者使用 hg 也行。原理上是一样的。

把你的服务器叫做 svn1 美国的服务器叫做 svn2。

使用 git1 服务器用于做 git-svn 桥,git1 服务器负责从 svn1 检入/检出代码。

使用 git2 服务器用于做 git-svn 桥,git2 服务器负责从 svn2 检入/检出代码。

然后让 git1 和 git2 服务器之间进行互相的 merge。merge 完之后,git1 服务器负责把修改提交到 svn1 服务器, git2 服务器负责把修改提交到 svn2 服务器。

方案完毕,OK。
回复 支持 反对

使用道具 举报

发表于 2010-7-1 11:25:30 | 显示全部楼层
或者,如果美国人喜欢用 git ,那么你可以完全舍弃 svn2/git2 服务器的做法。直接用一个 svn1-git1 的桥。但是如此以来,美国那边就不能做权限控制了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-1 11:28:52 | 显示全部楼层
我们有很多代码库,我想知道的是如果但用git可不可以做到双向同步呢?

就是gitBJ和gitUS同步,然后这2个服务器后面跟一群开发人员?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-1 11:36:58 | 显示全部楼层
Post by poet;2100730
svn 是集中式版本管理系统,适合企业使用。
git 是分布式版本管理系统,适合开源项目使用。

就权限控制方面而言,目前的分布式系统都比不上 svn 的。但是,以 svn 为基准,可以用 git 桥。

就你这个例子,用 git 是可以的。或者使用 hg 也行。原理上是一样的。

把你的服务器叫做 svn1 美国的服务器叫做 svn2。

使用 git1 服务器用于做 git-svn 桥,git1 服务器负责从 svn1 检入/检出代码。

使用 git2 服务器用于做 git-svn 桥,git2 服务器负责从 svn2 检入/检出代码。

然后让 git1 和 git2 服务器之间进行互相的 merge。merge 完之后,git1 服务器负责把修改提交到 svn1 服务器, git2 服务器负责把修改提交到 svn2 服务器。

方案完毕,OK。



先不讨论权限,我的意思是美国和北京都是一大把人用,这样,假如有git1和git2两个服务器,我是不是可以让我公司所有美国人在美国那边用git1,北京的用git2,然后晚上下班后,这2个服务器写个脚本自动merge!等于就是第二天,美国知道北京的修改,北京知道美国的修改?而且,我们是商务项目,这个代码merge可靠吗?我上网找了很多资料,听说git的提交什么的不是很稳定!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-1 12:00:49 | 显示全部楼层
还有一个,你刚才说git1和git2merge,那么就是说git的服务器可以双向同步?
回复 支持 反对

使用道具 举报

发表于 2010-7-1 12:11:23 | 显示全部楼层
熟悉的话,用分布式 git 一类工具 或 集中式 svn 一类工具,本不是什么大问题。
公司内部用,如果 svn 玩不转,直接上 git 只是添乱。

两个 svn server 如果不分主从关系很愚蠢。
这里有解决方案:
http://stackoverflow.com/questio ... ersion-repositories

喜欢用 git 的,照样可以用 git-svn。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-1 12:21:21 | 显示全部楼层
Post by 聚焦深空;2100739
熟悉的话,用分布式 git 一类工具 或 集中式 svn 一类工具,本不是什么大问题。
公司内部用,如果 svn 玩不转,直接上 git 只是添乱。

两个 svn server 如果不分主从关系很愚蠢。
这里有解决方案:
http://stackoverflow.com/questio ... ersion-repositories

喜欢用 git 的,照样可以用 git-svn。


我现在就是分了主从,从服务器在美国,让他们check out代码,可以很方便的拿,但是checkin还是要往北京这边checkin,因为2个服务器是单向同步!现在不是svn功能我不了解,是因为无法双向同步,我的问题其实很简单,就是如果用git来替代svn,能不能双向同步两个不同地方的节点服务器!

而且,git的merge可以自动化吗?会不会出现冲突需要手工?那如果这样,就没有意义了,我们更改代码很多,所以只能在不上班的时候merge,要的就是用脚本一次性完全merge!
回复 支持 反对

使用道具 举报

发表于 2010-7-1 12:42:40 | 显示全部楼层
可能异想天开
假如svn同步功能不怎么样,是否可以向下寻求同步方案?
是否iscsi存储能发挥作用?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-1 13:19:45 | 显示全部楼层
Post by U571;2100746
可能异想天开
假如svn同步功能不怎么样,是否可以向下寻求同步方案?
是否iscsi存储能发挥作用?


您是说git也无法有这个功能?就是用脚本一次性双向完全同步?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表