svn同一仓库下含有多个其他仓库!怎么能把仓库A下的项目移动到仓库B下?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了svn同一仓库下含有多个其他仓库!怎么能把仓库A下的项目移动到仓库B下?相关的知识,希望对你有一定的参考价值。

svn同一仓库下含有多个其他仓库!例如repositories下还有分类仓库A和分类仓库B,我怎么能把分类仓库A下的项目移动到分类仓库B下?这样版本信息会丢失吗?

你的描述有些歧义。
如果你说的分类仓库A和分类仓库B是两个独立的版本库的话,是没办法在保留版本信息的基础上进行版本库之间的数据移动的。因为SVN的版本号表示的是整个库的状态,而不是某个文件夹或文件的状态,所以版本编号是无法随着文件迁入另一个版本库的。
如果分类仓库A和分类仓库B是同一个版本库下的两个文件夹,那么可以直接通过移动操作,这是开开眼保留版本信息的。

不知道你的最终目的是什么,或许SVN的“外部引用”功能可以部分解决你的问题。
参考技术A 如果你说的分类仓库A和分类仓库B是两个独立的版本库的话
也可以把A仓库或者B仓库放在一起。
例如A仓库想放到B仓库下面。
可以用dump的方式把A 仓库恢复到B下面。
具体操作如下: svnadmin dump A > a.dump #备份
svnadmin load B < a.dump #把A 仓库融合到B 仓库下
参考技术B 不会丢失,你所要实现的是版本库的迁移,使用SN自带的命令可以实现。
SVN目录带日志迁徙流程
1, 登入SVN服务器所在电脑。
2, win + R 输入CMD,回车,打开Dos窗口。
3, 进入SVN数据所在的目录,【此操作根据自己仓库的位置而定】
d:【回车】
cd D:\Repositories【回车】
4, 导出某个版本库的数据到dump文件,[dump需要提前创建]
svnadmin dump RepositoriesA/ > e:\dump\RepositoriesA.dmp
【此操作根据自己仓库名称位置而定】
5,将导出的版本库数据导入到新的版本库:
将RepositoriesA所有数据都导入到RepositoriesB中
svnadmin load RepositoriesB < e:\dump\ RepositoriesA.dmp
【此操作根据自己仓库名称位置而定】

SVN的搭建(权限配置篇)

如要转载,请注明出处!

 

两个问题:

  • 如何维护多个目录或者仓库
  • 目录权限如何设置

=====================================================================

1、维护多个目录或仓库

  • 方案一:分别创建两个仓库,配置两套设置
  • 方案二:在同个目录下创建两个仓库,将passwd、authz提到根目录下,两个仓库的全局配置公用一套配置
  • 方案三:只要一个仓库,但是在仓库下设置多个子目录

方案一不合适、方案二可取、方案三可取。

但是当多个项目都比较大时推荐方案二,因为方案三所有项目都在一个仓库,如果需要仓库迁移,将比较麻烦。

2、创建多个仓库的权限配置

[project1:/]
zhangsan = rw
lisi = r
* = 

[project1:/tag]
wangwu = r [project2:
/] lisi = rw zhangsan = r * =

3、创建一个仓库的权限配置

[/project1]
zhangsan = rw
lisi = r
* = 
[/project1/tag]
wangwu = r
[
/project2] lisi = rw zhangsan = r * =

4、权限详解:继承和覆盖

权限的设置方式:

  • 精准设置    指明A在目录B有什么权限(rw)
  • 继承           如果目录没有设置权限,则继承最近的父目录的权限
  • 覆盖           当前目录优先选择本目录设置的用户的权限,然后才考虑继承的权限
  • 其他           * 表示除了指明的用户之外的所有人,无视父目录权限

案例:

目录结构:

|

|----doc

        |

        |-----pic

        |-----bill

|----tag

|----trunk

        |

        |----moduleA

        |----moduleB

|----test

角色设置:

boos:老板,查看所有,但是不会去动手写

manager:项目经理,只查看和编写doc文档、其他目录只看不写(令:pic目录也不能修改,不然美工的菇凉要发飙)

art:美工,只操作pic目录,其他目录没有任何权限

programmerA:程序员A,对moduleA、tag读写,pic只读,其他权限没有

programmerB:程序员B,对moduleB、tag读写,pic只读,其他权限没有

test:测试人员,test目录可以读写,tag只读,其他没有

 

权限配置:

 

#经理和老板可以读任何地方, 没有写的地方表示继承该权限
[/] boss = r manager = r
#经理读写 [/doc] manager = rw #boss可读,因为继承[/]的权限
#美工读写,程序员可读,老板可读,经理只读,其他人没权限 [/doc/pic] art = rw programmerA = r programmerB = r boss = r manager = r #这里用了覆盖,那么即使经理对doc可以rw,但是当前目录也只能r不能w * = #用了*,表示除了写的其他人都没有权限,所以如果不把boss = r 加上,那么boss不可读 [/tag] programmerA = rw programmerB = rw test = r [/test] test = rw [/trunk/moduleA] programmerA = rw [/trunk/moduleB] programmerB = rw

 

 

 

以上是关于svn同一仓库下含有多个其他仓库!怎么能把仓库A下的项目移动到仓库B下?的主要内容,如果未能解决你的问题,请参考以下文章

windows 怎么查看svn仓库

linux下将文件导入到svn的仓库目录

SVN的搭建(权限配置篇)

关于svn下 cocopods使用经验总结

SVN多仓库配置

GIT 远程仓库