Tortoise SVN使用:
步骤:
1、新建repository文件,在此文件里创建仓库;
2、新建temp,临时文件,里面有trunk,branch,tag三个文件,然后import导入,初始化仓库;
3、建立工作副本works文件,里面放置各个工作副本。
3 附录
3.1 SVN各种图标的含义
一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常.
在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。
如果在提交的过程中出现了冲突图标变成黄色感叹号。
如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。
如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。
这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。
加号告诉你有一个文件或是目录已经被计划加入版本控制。
与TortoiseCVS (一个集成的CVS shell)不同,对于未受控的文件没有图标重载。这么做是因为图标重载的数量受到系统的限制,应该要节约使用。
事实上,你会发现并不是所有的图标被使用在你的系统上。这是由于Windows限制图标重载不能超过15个。Windows自己用了4个,剩下11个可被别的应用程序使用。如果你同时使用了TortoiseCVS,就不有足够的空位了,所以TortoiseSVN希望成为一个“良好市民(TM)”,限制自身的使用,为别的应用留下机会。
revision: ==>每提交一次,资源库中版本号加1. version_id++.
Show log :显示记录;
Rep-browser :浏览仓库,可以查看仓库里的所有文件,以及不同版本时仓库里有那些文件;
Update to revision:两个选项
1、show log :显示记录;
2、revision :更新到某一版本,不填表示更新到最新版本;
若更新到早期版本,并不能提交。仓库中的仍然是最新版本,没有做修改,不提交。
????这个是做什么用的?查看???还是所谓的时光机???
若将它更新到某一版本,,在此基础上做修改,再提交将失败,
Command: Commit
Modified: E:\SVN练习\works\B\branch\test_1.txt
Error: Commit failed (details follow):
Error: File '/branch/test_1.txt' is out of date
Error: You have to update your working copy first.
Finished!:
(说明做修改之前一定要先更新(SVN update),与资源库同步)
更新(SVN update),会出现冲突:
Command: Update
Conflicted: E:\SVN练习\works\B\branch\test_1.txt
Completed: At revision: 6
Warning!: One or more files are in a conflicted state.
出现很多文件,可以手动更新:删除三个带有蓝色问号的文件,打开带有黄色!(表示冲突)的文件,会发现
作业:
1、英语口语练习;
2、C++编程;
3、电分习题;
4、模电习题;
<<<<<<< .mine //我的文件情况
5、在低版本上修改制造冲突;
=======
5、离散数学;
6、概率论;
>>>>>>> .r6 //最新版本(r6)的情况
多出了一些标志,显示冲突的地方。
可以手动修改。
若用revert,(是恢复原状),表示放弃修改。
若手动修改了,但没有删除三个带蓝色问号的文件,直接提交,将会出现
Command: Commit
Error: Commit failed (details follow):
Error: Aborting commit: 'E:\SVN练习\works\B\branch\test_1.txt' remains in conflict
Finished!:
删掉提交,就没问题了(版本+1)。
有时提交成功后,没有出现绿色勾图标,刷新或退到上级文件,再进入就出现了。
若删除一个文件,用update to revision,找回后不修改无法提交;
修改,会出现错误:
Command: Commit
Modified: E:\SVN练习\works\A\branch\test_2.txt
Error: Commit failed (details follow):
Error: File 'test_2.txt' is out of date
Error: File not found: transaction '10-c', path '/branch/test_2.txt'
Error: You have to update your working copy first.
Finished!:
若更新,会出现冲突,再撤销,修改会保留(?),可以提交了。
Command: Update
Error: Checksum mismatch while updating 'E:\SVN练习\works\A\branch\test_2.txt';
Error: expected: '2cd20f0d7238baf1a582b287f39df4d5', actual: 'd41d8cd98f00b204e9800998ecf8427e'
Error: Try a 'Cleanup'. If that doesn't work you need to do a fresh checkout.
Finished!:
如何将自己的项目添加到仓库中?
在某个工作副本的trunk中新建一个自己工程的文件夹,如AddrBook(最好是用英文命名,要习惯),然后提交(将此文件夹添加入仓库)。
找到自己的工程文件夹,然后import导入到新建文件夹(如:file:///E:/SVN练习/repository/branch/AddrBook)目录下。
回到工作副本的AddrBook中,update,将出现导入的文件。
但是像导入的整个VC++的文件,会有许多是VC++工作坏境的文件,不用共享,也不应该放入仓库,不然不同的人用的不同的工作坏境,会有问题;放入仓库的应该只是源代码。可以删除多余的文件,然后提交。
在自己对这些项目文件进行修改时,只需在VC++里新建一个工程,然后导入这些文件(添加文件到目录),在进行修改调试等项目开发(注意:这里是添加文件到项目,并不是拷贝的副本到这个工程,从文件的属性可以看出文件的地址,从这里修改工作副本中的文件会变化,保存后,工作副本会变成红色!,提交后其他人可以update看到你的工作。并且你新建的工程文件夹中将不会有.h,.cpp文件,文件不在这)。
时光机器:
1、update to revision
2、新建一个工作副本,然后SVN checkout检出,选择revision,输入版本数即可。
relocate (重定位),
在工作环境调整时,有的时候SVN服务器的地址需要修改,此时我们如何修改本地库的地址,而不用重新下载呢?SVN中有一个简单的解决办法: 右键在工作复本的根目录上右键->TortoiseSVN->重新定位(Relocate),然后修改URL就可以了,但最好先备份一下,据说这样的操作有一定的危险性(至今我没有发现)。
<!--EndFragment-->