zhxl852000
2011-10-14 09:11 阅读 459
已采纳

svn对文档管理(xls/doc/pdf/docx/xlsx)如何合理的应用?

svn对文档管理(xls/doc/pdf/docx/xlsx)如何应用?
是否加“锁”,如何设置“锁”权限?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    iteye_8576 iteye_8576 2011-10-14 09:58

    [color=red]svn不能设定锁的权限,那A加锁,B可以解锁,是这样的吗? [/color]

    是的

    点赞 评论 复制链接分享
  • long13131462101 long13131462101 2011-10-14 09:19

    [code="java"]SVN服务器与客户端配置与应用
    简介:
    什么是Subversion?
    Subversion 是一个自由/开源的版本控制系统。也就是说,在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。于是我们就可以籍此将数据回复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
    Subversion 的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。
    某些版本控制系统本身也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。对你来说,这些文件这可能是源程序—而对别人,则可能是一个货物清单或者是数字电影。

    下载
    官方下载:
    服务器和程序下载 : http://subversion.tigris.org/getting.html#binary-packages
    Windows常用客户端TortoiseSVN:http://tortoisesvn.net/downloads
    AnkhSVN(Visual Studio插件):http://ankhsvn.open.collab.net/
    Subclipse(Eclipse插件):http://subclipse.tigris.org/
    SCPlugin(Mac OS x客户端):http://scplugin.tigris.org/
    更多客户端和工具可以看下表或者到官方网站察看:
    http://subversion.tigris.org/links.zh.html#clients

    服务器端配置:
    配置为以下几个部分,本次配置是在windows下使用的方式,以方便资源有限的项目使用。在UNIX环境下,只是安装方式不同,命令执行并无太大区别。
    注:服务器端配置前,最好先将此机器的IP地址手动填写为固定IP地址!
     软件下载
     服务器和客户端安装
     建立版本库(Repository)
     配置用户和权限
     运行独立服务器
     初始化导入
     基本客户端操作

    1,软件下载
    下载Subversion服务器程序。
    这里不过多赘述,注: 服务器端程序为Setup-Subversion-*.msi 。*号部分为版本号.
    下载Subversion的Windows客户端TortoiseSVN。
    TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
    ,注:客户端程序为TortoiseSVN-*-win32-svn-*.msi。(64位系统请选择下载对应版本)

    2,服务器和客户端安装
    服务器安装,直接运行Setup-Subversion-*.msi ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。 (注:在安装过程中请务必不要在安装目录中包含空格,例: C:\Program Files\Subversion 是错误的路径,”Program Files”中包含了空格,这样可能会引起Subversion无法正常启动!)
    安装TortoiseSVN,同样直接运行TortoiseSVN-*-win32-svn-*.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关! 这里是否需要看到效果,请自行选择是否需要重启.(注:服务器端可选择性安装客户端程序,如无必要,可以选择不安装)

    3,建立版本库(Repository)
    运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如: svnadmin create E:\svndemo\repository就会在目录E:\svndemo\repository下创建一个版本库。
    我们也可以使用TortoiseSVN图形化的完成这一步: 在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。

    4,配置用户和权限
    来到E:\svndemo\repository\conf目录,修改svnserve.conf:该处为权限配置部分,可根据需求修改.

    [general]

    password-db = passwd

    改为:
    [general]
    password-db = passwd
    然后修改同目录的passwd文件,去掉下面三行的注释:

    [users]

    harry = harryssecret

    sally = sallyssecret

    最后变成:
    [users]
    harry = harryssecret
    sally = sallyssecret
    在passwd文件中,“=”前的字符就是用户名,后面的就是密码。还要注意“[users]”前面的注释“#”一定要删除掉。

    5,运行独立服务器
    方法一: 在任意目录下运行: svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。
    方法二: 在windows下使用svnService安装svn服务,
    1. 将 svnService.exe拷贝到 svn的安装目录\bin下.
    2. 执行 svnService -install 即可.
    比如,你的所有项目都在c:\svnrepo下,你可以如下
    安装时用 SVNService -install -d -r c:\svnrepo
    更改时用 SVNService -setup -d -r c:\otherplace\svnrepo
    如果访问其中的一个项目c:\svnrepo\project1,可以指定路径svn://localhost/svnrepo/project1 (注:作为url时用/)
    第一次安装完后要到服务中手动启动它,或者到服务中将它设为自动启动,让每次机器启动时自动启动这个服务。
    注意:

    svn的安装目录不能有空格,否则会使创建服务失败,例 安装在 c:\program files\subversion 目录下,在创建windows服务时都会出错.
    SVNService 相关的命令:
    可直接输入 SVNService 看到可使用的参数信息.
    备注:
    SVNService的主要功能就是安装/移除服务(通过API CreateService / DeleteService 来实现的)

    6,初始化导入
    来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个readme.txt文件: 右键->TortoiseSVN->Import...
    在URL of repository输入“svn://localhost/trunk” 在Import Message中输入你的日志信息,完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。
    需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是192.168.0.1,则URL部分输入的内容就是“svn:// 192.168.0.1/trunk”。
    (注:导入与添加是两个不同的操作)

    7,基本客户端操作
    取出版本库到一个工作拷贝: 来到任意空目录下,在本例中E:\svndemo\wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/trunk,这样我们就得到了一份工作拷贝。
    URL of repository:是你需要导出的文件路径
    Checkout directory:是你将要把文件导出的具体本地路径.
    其他选项默认即可..
    (注:在另一台机器上同理,只不过需要填写URL地址)
    添加操作:
    该样式为在工作目录下新建的文件样式,显示为一个问号.
    添加该文件需要点击TortoiseSVN>>Add…

    然后提交即可

    该文件就在工作目录上添加并且提交.

    获取最新版本文件:
    选择需要获得文件,选择SVN Update即可获取最新版本文件

    修改操作:
    该样式为文件被修改后的样式.
    选择 SVN Commit…提交即可

    (注:在提交过程中,可能会报错,或者禁止提交,该原因可能是人员A与人员B同时操作了该文件,造成了文件并发,或者是当人员A修改了该文件并提交后,人员B修改了该文件也需要提交时,该文件在人员B的版本低于服务器端得版本,所以禁止提交!
    可以尝试如下处理方法:将该文件获取为最新版本(SVN Update),然后打开该文件,文件中内容SVN已经帮助我们把本地版本与服务器端的版本不同处标注出来,做相应的修改后选择TortoiseSVN>>Revision graph 然后在提交即可)

    删除操作:
    选择TorotiseSVN>>Delete 删除该文件.

    然后点击该文件空白处 选择 SVN Commit…提交
    注:点击空白处提交时是将整个文件夹内容全部提交,所以提交过程中需要选择需要提交的内容进行提交.且勿需要确证需要提交的内容后在提交,以免造成文件的提交给其他人员造成版本错误的结果! 如下图,选择需要提交的内容后再OK
    同理该方法也适用于多文件提交,或者选择好需要提交的文件,选择SVN Commit…一起提交也可以.

    该样式为该文件为本地的完整文件! 但并不代表这个文件是与服务器同步的最新版本.

    察看所作的修改:
    选择文件上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。

    SVN库的目录结构详解
    SVN库
    ┠tags(发布)
    ┃├1.1rc1
    ┃├1.2
    ┃├1.5
    ┃└1.9
    ┠trunk(主版本)
    ┃└project
    ┃├src
    ┃├classes
    ┃└WEB-INF
    ┖branches(分支)
    └分支

    主要的开发工作放在trunk,分支放在branches,发布版本放在tags。
    存储库
    trunk:主版本
    project : 项目文件,文档ER图 用例图 实体关系图等文档
    src : 开发项目文件,程序文件
    classes : 类文件,通用帮助类, 例: 字符串处理通用类,通讯的通用类等,在多个项目中,可以重复利用的类文件或者解决方案
    web-inf : 在WEB项目中,站点的配置信息等

    branches:分支版本(独立版本)例如历史版本v1.0/v2.0 测试版本,分支A功能版本,分支B功能版本等!

    tags:标记版本,比如发行版v1.0/v2.0 目前为止稳定的最可靠的版本,正在运行及适用的版本

    注意事项:
    开发人员每次修改,或者新增、删除、拷贝工作区对象后,应该立刻提交到版本库,有效保持工作区与资源库的高度一致.
    开发人员在每次修改工作区中代码或者文档时,首先更新该对象,可以尽量减少冲突、合并.
    保证提交到的版本库的代码没有BUG以免影响开发组,可以适当利用加锁机制,减少冲突.
    切忌尽量不要提交整个工作文件夹,还有一些*.csproj的项目解决方案文件夹等会影响到整个项目的文件.
    ?[/code]

    点赞 评论 复制链接分享
  • iteye_8576 iteye_8576 2011-10-14 09:31

    1.如何应用?
    看一下svn的帮助文档。
    2.是否加“锁”,如何设置“锁”权限?
    svn提供锁的功能,通过菜单Get lock对文件进行锁定,通过Release Lock 释放锁定。
    svn不能设定锁的权限,可以设定用户对文件的访问权限。

    点赞 评论 复制链接分享
  • long13131462101 long13131462101 2011-10-14 09:53

    [code="java"]api来的快[/code]

    点赞 评论 复制链接分享