首页 新闻 会员 周边

SVN版本控制

0
悬赏园豆:20 [已解决问题] 解决于 2014-08-07 11:45

项目是通过SVN进行版本控制的。

比如有项目A,项目B,在SVN中存储的路径不同,本地硬盘存储也是独立的。

因为有些功能是相同的,现想在A项目中部分文件使用B项目中的文件,也可能是文件夹。

SVN可以实现该功能吗?应如何操作?

换一种说法,将公共的部分,是页面,很多页面,当然也有文件夹,比如系统管理,单独拿出来作为共享,其他系统可以使用并修改系统管理这个模块。但要求做的修改,其他系统能方便同步,如果使用SVN执行一个更新命令就行,而不是文件夹之间的复制、替换操作,个系统之间不是独立的。

lucika.zh的主页 lucika.zh | 初学一级 | 园豆:62
提问于:2014-07-09 09:08
< >
分享
最佳答案
0

使用svn:externals

这样设置就ok了.

收获园豆:15
jj91821 | 菜鸟二级 |园豆:461 | 2014-07-09 11:13

谢谢。高端,我先试试。这个属性好像不能用于单个文件上,只可以在文件夹上使用

lucika.zh | 园豆:62 (初学一级) | 2014-07-09 11:34
其他回答(4)
0

是单独的文件吗?

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-09 09:18

有单独的文件,也有整个文件夹

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 09:21

@lucika.zh: 我不明白这个跟SVN有什么关系.

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-09 09:23

@晓菜鸟: 项目是通过SVN管理的,想把其中某些功能单独拿出来,作为一个单独的项目A。以后所有的项目都会使用项目A的代码,总不能每个项目都单独做一个copy吧,如果几十个项目同步起来非常困难。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 09:36

@lucika.zh: 是.Net吗?如果是的话可以添加引用啊,或者直接异步请求项目A里面的类的方法.

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-09 09:41

@晓菜鸟: 是文件,很多文件,页面,比如系统管理等模块,可能全部公司系统的系统管理模块都是一样的,公司有50个客户,由于系统直接有差异,对应有50个系统。怎么做到系统管理模块统一呢?我在一个系统中更改了,别的系统不需更改,只需执行一个SVN命令,而不是本地复制命令。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 09:46
0

你就放在不同的目录,然后用链接的方式,添加项目到解决方案就行了吧。和svn没多大关系吧。

幻天芒 | 园豆:37175 (高人七级) | 2014-07-09 09:25

这是一个方法,感觉应该可行。但是项目组成员文件的存放位置完全不同,项目必然有冲突,能不能用SVN的方式解决

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 09:32

@lucika.zh: 同一个项目,就一份代码,不会冲突的!

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-07-09 09:41

@幻天芒: 无法做到自动同步。

@晓菜鸟: 是文件,很多文件,页面,比如系统管理等模块,可能全部公司系统的系统管理模块都是一样的,公司有50个客户,由于系统直接有差异,对应有50个系统。怎么做到系统管理模块统一呢?我在一个系统中更改了,别的系统不需更改,只需执行一个SVN命令,而不是本地复制命令。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 09:47

感谢提提供思路。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 10:19

@lucika.zh: 明白了.容我好好的想一想.

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-09 10:25

@晓菜鸟: 按照你说的有点像SVN的分支了。共同的更新,合入主干,然后,每个系统,有各自的分支。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-07-09 11:47
0

给举个例子解释下,“但是项目组成员文件的存放位置完全不同,项目必然有冲突”。

Launcher | 园豆:45045 (高人七级) | 2014-07-09 09:35

有什么其他的方案?

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 09:47

@lucika.zh: 二楼说的方式这样的,项目中添加文件的时候,使用引用,这样不会将文件复制到当前项目目录,而只是引用某个位置的文件。当修改此文件后,通过 SVN Commit 更新到服务器,其它开发机器通过 SVN Update 从服务器将新的文件更新到本地。这个步骤我没看出有什么问题,所以我请你举个例子说明你担心的“项目必然冲突”。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-07-09 09:57

@Launcher: 怎么添加页面引用?如果直接添加页面,会直接复制到项目目录中。如果添加DLL引用,而DLL文件不在项目中,引用的时候会地址会显示为绝对地址,即DLL文件的所在文件,比如d:\DLL\。而别的同事不在这个位置。项目文件会由于引用位置不同一直被修改。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 10:08

@Launcher: 学到一点。谢谢提供具体方法。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 10:18
0

如A、B同属一个版本库应当问题不大,在本地工作目录实施应当问题不到。另外,有需要SVN支持NTFS扩展属性的,可参考:

http://blog.csdn.net/zzkjliu/article/details/17489547

收获园豆:5
LiuKaiFa | 园豆:1491 (小虾三级) | 2014-07-09 11:50

A、B不属于同一版本库。但绝大部分是一样的,是从同一版本库中分离出来,然后进行了个性化定制。

支持(0) 反对(0) lucika.zh | 园豆:62 (初学一级) | 2014-07-09 14:24

@lucika.zh:试试分支合并

支持(0) 反对(0) LiuKaiFa | 园豆:1491 (小虾三级) | 2014-07-15 08:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册