TortoiseSVN特别版是程序开发人员必须的管理软件,通过TortoiseSVN可以让用户更加便捷的管理程序的开发进度和程序测试,以此适合数人协同合作开发,在网站设计之时,用户更加需要用到TortoiseSVN,使得用户更加高效的进行工作。
可选的网络层
Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。
数据处理
Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。
高效的分支和标签
分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。
维护能力
Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这使 Subversion 非常容易维护,可以轻易的被其他语言和程序使用。
外壳集成
TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。
并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。
重载图标
每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。简便访问Subversion 命令的简便访问所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:
目录版本控制
CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。
原子提交
提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。版本控制的元数据每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。
1、软件支持可选的网络层。
2、软件支持一键处理数据。
3、软件支持高校的分支和标签。
4、软件为用户提供了良好的维护能力。
5、软件集成了外壳功能。
1、建立一个 runoob01 的工作目录
所谓的 runoob01 目录其实就是您平常用来存放工作档案的地方。通常我们会等到自己的工作做的一个段落的时候再进行备份。所以我们平常都是在 runoob01 目录下面工作,等到适当时机在 commit 到 repository 中。举例来说,我们想在 D 盘下面建立一个名为 runoob01 的目录。首先先把这个目录建立出来。
2、进入创建的目录,在空白处按下右键后(您可以在 MyWork 目录的 icon 上按,也可进入 MyWork 目录后,在空白的地方按),选择 SVN 检出
3、接着您可以看到如下的画面:
首先我们要填入的是 repository(版本库)的位置,对于 SVN 来说,repository 的位置都是 URL。版本库 URL 这里填入我们测试的版本仓库地址 svn://10.0.4.17/runoob01。
4、接着,稍微看一下 Checkout directory(检出至目录),这个字段应该要指向您的 runoob01 目录。
5、确认后,按下 OK 按钮,您应该可以看到如下的信息窗口。
6、这样就表示动作完成。按下 OK 按钮后,再到您刚刚建立的目录下。您将会看到 MyWork 目录下面多了一个名为 .svn 的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它) 。
如果您要在一个已经存在的 SVN Server 上面 checkout 出上面的档案,您只需要给定正确的 SVN URL 以及要 checkout 目录的名称。就可以取得指定的档案及目录了。
1、在电脑空白处点击鼠标右键,在弹出的选项中点击【TortoiseSVN】选项,在二级菜单中点击【设置】。
2、在打开的设置窗口中点击【已保存数据】选项。
3、然后在右侧界面中找到红框标注出的选项,点击【清除】选项。
4、然后会打开一个窗口,选择您要切换的用户信息,并在前面打钩,打钩后点击【确定】就可以了。
5、重新登录TortoiseSVN软件,需要您输入用户名和密码,输入完成后点击【确定】就可以了。
1、无法复制/移动‘XXX.svn-base‘到’XXX.tmp‘:系统找不到指定文件。
这个错误信息通常在你更新工作拷贝时出现,可能的原因有两个:
版本库中有两个文件的名字只是大小写不同,这在Windows下是不允许签出的,因为Windows的文件系统是大小写不敏感的。很可能其中一个文件是误添加的,所以你要找出是哪一个,然后删除它,以确保不会把更改提交到错误的文件。
某个文件的文件名是非法的(对Windows来说非法),比如,“con”, “lpr”, “com”都是非法的,因为这些都是设备名。当然,含有“//*?:|”和其它特殊字符在Windows(NTFS 和 FAT)也是不允许的。
是,我们知道这个错误信息对解决问题没什么实质性的帮助,但这个错误信息是来自Subversion库的,我们改不了。
有几个办法可以避免这个问题,请看 这里。
2、无法打开文件’XXX/nnn-n.txn/changes‘:无法访问,文件正被其它程序使用。
通常报告这个错误的人都说这个问题是随机发生的,并且通常会在一次大的提交中发生。重新提交可能成功,也可能在别的地方出错。
最有可能的原因是,有一个病毒扫描程序正在非正常地占用这个文件。你可以试着禁用病毒扫描,或者让它忽略你的版本库文件。
类似的错误也可能发生在你的工作拷贝,试试让它忽略 .svn 文件夹。
3、添加‘XXX’失败:同名对象已存在。
这个错误通常是在你更新工作拷贝时发生。之所以抛出这个错误是因为Subversion绝对不会擅自删除或者覆盖你已有的本地文件。有三个可能原因会导致这个错误:
你有一个未纳入版本控制的本地文件,名字跟其他人已添加的文件一样。这种情况下你可以先移走或者重命名你的本地文件再更新。之后你可以决定是需要合并还是把你的文件改个名字。
版本库中的一个文件被重命名了,但只是大小写不一样,如 Install.txt 改为 install.txt,而你在本地作了修改。当你更新时就会遇到第一种情况,你修改过的本地文件被视为未纳入版本控制。将它移到其它地方,再更新,问题解决。
版本库中有两个文件的名字只是大小写不同,这在 Windows 下是 不 允许签出的,因为 Windows 的文件系统是大小写不敏感的。很可能其中一个文件是误添加的,所以你要找出是哪一个,然后删除它,以确保不 会把更改提交到错误的文件。
4、OPTIONS of ’《path》‘: 401 Authorization Required 《url》
升级到 1.4.x 版之后,你发现无法访问版本库了,每次都出这个错: OPTIONS of ’path‘: 401 Authorization Required ’url‘。
这是因为 1.4.x 版使用了 SSPI 自动验证,即TortoiseSVN会自动使用登录 Windows 域控制器的用户信息来作身份验证。
如果你设置你的服务器以 SSPI 的方式向域控制器作身份验证,而域控制器又没开放 GUEST 用户的话,不会有问题。但是如果开放了 GUEST 用户,自然所有以 GUEST 用户进行的验证都会通过——但是一般来说你是不会授权 GUEST 访问你的版本库的。这就造成了 验证 通过了,但授权 不成功。
另一个失败的原因是,你设置用来访问版本库的用户跟你用来登录工作站的用户不一致(那我就奇怪了,如果是这样你根本就不应该以 SSPI 方式来验证呀)。
有几个方法可以解决此问题:
在域控制器中禁用 GUEST 用户
将登录工作站的用户和访问版本库的用户设为一样
不用 SSPI 来做版本库验证
检查用户名的大小写,将控制文件中的用户名改为小写对解决问题也可能有帮助
5、客户端版本太旧,不能操作工作拷贝‘XXX’
完整的错误信息是:客户端版本太旧,不能操作工作拷贝’。‘;请下载更高版本的Subversion客户端。
当先使用一个比较高版本的Subversion客户端,然后又用比较低版本的客户端来执行命令,就会发生这个错误。比如你先用了 1.4.x 版的客户端操作工作拷贝,然后用 1.3.x 版的操作同一个工作拷贝。
这是因为Subversion1.4 和 1.5 会自动更新工作拷贝的格式,而老版本的客户端不认新的格式。
唯一的解决办法是升级你的客户端,或者用你老版本的客户端重新签出。
6、工作拷贝已过期
这个错误是在提交修改的时候出现的,通常是因为在版本库里,你想要提交的文件已经被其他人修改了。
这时你要先用 更新 命令更新的的工作拷贝到版本库当前的版本。
你可能会不明白为什么要这么做,尤其是在你 确知 版本库并没有被修改过的情况下。答案很简单,因为提交的时候,并不会彻底更新你的工作拷贝,而只是那些修改的文件会被自动更新。举个例子,有个新建的版本库:
Add Folder in revision 1
Add File1 and File2 in revision 2
Modify File1 and commit in revision 3
现在版本库处于修订版本 3,但你的工作拷贝的版本会是这个样子:
Folder : revision 1
Folder/File1 : revision 3
Folder/File2 : revision 2
这时如果你修改 File2 然后提交,就会失败。因为客户端告诉版本库 File2 是在版本 2 的基础上作修改的,但是版本库已经处于版本 3 了。如果此时你执行更新命令,就会将 File2 也变成版本 3 (当然,你的本地修改还会在的)。
这个错误还可能在你试图创建分支或标记时出现。答案永远都是:如果工作拷贝已经过期,那就更新呗!
7、无法写到标准输出
TortoisePlink 使用的是标准的 plink 代码,但不是针对 Windows 编译的,因而无法正常发送错误信息。在 TSVN 的设置 -》 网络里,将 SSH 客户端指向标准 plink,错误信息就会输出到一个命令行窗口中。设置好之后再像之前一样运行 TortoisePlink。
“无法写到标准输出” 表示 Plink 想要抛出一个错误,但是因为 TortoisePlink 并没有提供一个 DOS 窗口,所以就没没有标准输出来接收这个错误信息。
知道是设置有问题后,可以先使用普通的 plink 程序,看到底是什么错误,解决它。
如果普通 plink 挂住了,那就是参数不对(设置 -》 网络)。
另一个可能是 SSH 后台程序找不到 svnserve 可执行文件。以你将要使用的用户(此处为 myuser)登录到服务器,输入 “which svnserve”,如果没有显示指向可执行文件的路径,就把该文件(以及其它 Subversion可执行文件)设为对于该用户可全局访问。
8、400 服务器未能理解请求(400 Bad Request)
REPORT request failed on ’。。。‘ REPORT of ’。。。‘: 400 Bad Request (http://。。。)
你的 DAV 请求被防火墙阻止了,多数防火墙都会这么这么干。你可以让你的管理员更改防火墙的设置,或者以 https 访问,如 https://svn.collab.net/repos/svn/ ,这样你与版本库之间的通信是经过 SSL 加密的,防火墙无法阻止(如果它没有封掉 SSL 端口的话)。
另外,现已确认某些病毒扫描程序(如卡巴斯基)也会导致这个错误。
9、403 对被请求页面的访问被禁止(403 Forbidden)
PROPFIND request failed: 403 Forbidden
这有可能因为你试图访问版本库的父目录(而不是版本库本身)。你可以试着在 URL 尾部指定版本库的名字,还有别忘了名字后面的斜杠 ‘/’。
有关导致此错误的真正原因,请查看 Apache 的错误日志。
10、405 HTTP Method Not Allowed
PROPFIND Request Failed - Error 405 HTTP Method Not Allowed
这个错误有几种形式,可能的原因有以下几个:
PROPFIND Request Failed 你试图使用较低版本的TortoiseSVN浏览版本库的父目录。你可以试着在 URL 尾部指定版本库的名字,或者升级TortoiseSVN到 1.2.3 版或更高。
PROPFIND Request Failed 你漏了 URL 末尾的斜杠 ‘/’,较旧版本的 TSVN 要求在版本库名字后必须有斜杠,否则它会砍掉版本库名字,等于试图去访问它的父目录。
PROPFIND Request Failed 你可能正尝试通过一个不允许 DAV 请求的代理访问版本库。通常你用网页浏览器浏览版本库是没问题的,只在使用 svn 客户端时才出错。你必须配置你的代理服务器或防火墙,以让 DAV 请求通过,或者使用 https 来访问,多数代理服务器无法分析加密过的信息包,因而也就无法阻止 DAV 请求了。
另一个可能是你正在运行病毒扫描程序或防火墙,很多此类软件会在你根本不知道的情况下就阻止了 DAV 请求,可以试一下禁用它们。
Lock Request Failed 你尝试在工作拷贝中锁定一个文件,而这个文件在版本库中已经不存在了。你需要先更新工作拷贝。
1.修复若干bug;
2.优化细节问题;
……
点击下载系统软件 >>本地高速下载
点击下载系统软件 >>百度网盘下载