Warning: mkdir(): No space left on device in /www/wwwroot/jx.baidu.com/func.php on line 159

Warning: file_put_contents(./web/hch368.com/cache/0a/f4089/9144a.html): failed to open stream: No such file or directory in /www/wwwroot/jx.baidu.com/func.php on line 149
GG扑克

GG扑克




  • 红软(ruǎn)基地:您身边最放心的安全下(xià)载站!
您(nín)所在的位置(zhì):首页 > 软件 > 热(rè)门软件 > svn客(kè)户端64位版1.8.10.26129中文win7/win8通用版

svn客户端(duān)64位版1.8.10.26129中(zhōng)文win7/win8通用版

软件类型:
国产软件
软件语言(yán):
简(jiǎn)体中文
软件(jiàn)大小:
23.7 MB
软件授权:
免费软件(jiàn)
软(ruǎn)件评级:
4
更新时间(jiān):
2015-10-03
应用(yòng)平台:
WinXP, Win7, WinAll
同(tóng)类推荐软件
软件简介

svn客(kè)户端64位版1.8.10.26129中文(wén)win7/win8通用版是(shì)CVS的(de)接班人,目前,绝大多数(shù)开源软件都使用svn作为代码版本(běn)管理软件。软件除了能记住文件和目(mù)录的每次(cì)修改以外,版本库非常像普(pǔ)通(tōng)的文件服务器(qì),你可以将文(wén)件恢复到(dào)过去的版本(běn),并且(qiě)可以通过检查历(lì)史知(zhī)道数据(jù)做了哪些(xiē)修改,谁做的修改。这就是(shì)为什么许多人将 Subversion 和版本控制(zhì)系(xì)统看作一种“时(shí)间机(jī)器”。9X9红软基(jī)地

软(ruǎn)件介绍

svn客(kè)户端64位版作为CVS的重写版和改进版(bǎn),其(qí)目标就(jiù)是作为一个更好的版本控制软件,取代CVS.总的来(lái)说,CVS在发展的过程中(zhōng)逐渐失去优势,已经不再适合现代开(kāi)发,目前,绝大多数CVS服务已经改用SVN.9X9红软(ruǎn)基地(dì)
版本控制是管理信息修改的艺术,它(tā)一直是程序(xù)员最重要的(de)工具,程序员经常会花(huā)时间(jiān)作出小的修改,然后又在某一天取消了这些修改,想象一下一个(gè)开发(fā)者并行工作的团队 - 或许是同时工作在同一个(gè)文(wén)件!- 你就会明(míng)白为什么一个(gè)好的系统需要管理潜(qián)在的混乱。9X9红软基(jī)地

svn客户端使用教程

1.Checkout Repository 9X9红软基地
首先要Checkout服务器端的Repository, 9X9红软基地
所谓的Checkout就是指获得(dé)服务器端指定的Repository存储的所有文(wén)件。 9X9红软基(jī)地(dì)
这个Checkout和(hé)Visual Source Safe的Checkout意(yì)义完全不一样, 9X9红软基地
VSS的Checkout指(zhǐ)的是锁定(dìng)某个文(wén)件,如果你以前(qián)使用过VSS, 9X9红(hóng)软基地
在学习(xí)Subversion时这个问题一(yī)定要注意。9X9红软基地
Checkout的(de)具(jù)体方式是: 9X9红软基地
在客户端新建一个空目录,比如(rú):F:\Project1 9X9红软基地
在(zài)该目录(lù)上单击右(yòu)键,在弹出式菜单中选中SVN Checkout..., 9X9红软基(jī)地
之后在“URL of Repository”文本框中填入(rù)你想要连接的Repository的地址, 9X9红(hóng)软基地
这个URL地址可以用浏览方式加入。 9X9红软基地
对(duì)于在(zài)本教程第二节建立的Repository, 9X9红软基地
URL应该是“svn://xxx/project1” 9X9红软基(jī)地
(xxx可以是服务器端主机名,也(yě)可以是服务器端的ip地(dì)址)。 9X9红软基地
然后点OK,会弹出(chū)一(yī)个认证对话框, 9X9红软基地
输入(rù)在教(jiāo)程第三节设置的用户名(míng)和密码。 9X9红软基(jī)地
点OK后就完成了(le)对Repository的Checkout。 9X9红软(ruǎn)基地
比如:在服务器端(duān)Repository中有一个a.txt文件, 9X9红软基地
那么Checkout之后F:\Project1目录下也会出(chū)现(xiàn)一(yī)个a.txt文件。 9X9红软基(jī)地(dì)
在本例中由(yóu)于服务器端的Repository还未添加任何文(wén)件, 9X9红软基地
所以在客户端的F:\Project1下(xià)没有(yǒu)文(wén)件被Checkout。 9X9红软(ruǎn)基地
执行Checkout除了(le)会(huì)在F:\Project1产(chǎn)生Repository存储的文件及(jí)目录外, 9X9红(hóng)软基地
还会(huì)产生(shēng)了一个“.svn”的隐含目录(lù),该目录是由subversion管理的(de), 9X9红(hóng)软基地
不要删除或者(zhě)手工改动其中的文件(jiàn)和目录。 9X9红软(ruǎn)基(jī)地
现在F:\Project1中(zhōng)的(de)文(wén)件和目录就(jiù)叫做Repository的(de)“Working Copy”简写(xiě)“WC” 9X9红软(ruǎn)基(jī)地
(这个简写...汗)。 9X9红(hóng)软(ruǎn)基地
以(yǐ)后对Repository中文件和目录(lù)的修改,添加(jiā),删除的操作, 9X9红软基地(dì)
都是通过对这个“Working Copy”的操作(zuò)实现的。 9X9红软基地(dì)
Checkout执行完(wán)后, 9X9红软基地(dì)
会发现F:\Project1目录的图标(biāo)的左下角附着了一个(gè)小的状态图标 9X9红软基地
(当F:\Project1目录中的文件改变(biàn)时,这个状态图标也会(huì)随之(zhī)变(biàn)化), 9X9红(hóng)软(ruǎn)基地
它(tā)表示F:\Project1是一个Repository的“Working Copy”, 9X9红软基地
F:\Project1内的所有文件和目录也会有类似的状(zhuàng)态图标。9X9红软基地
2.添加文件(jiàn) 9X9红软(ruǎn)基地
将要添加(jiā)的(de)文件或(huò)者目录拷贝(bèi)到F:\Project1下, 9X9红软基(jī)地
然后在该文件或目录上单(dān)击右键,TortoiseSVN->Add,点(diǎn)OK。 9X9红软基(jī)地
如(rú)果添加了不止一(yī)个文件或目录(lù), 9X9红软基地
则鼠标(biāo)不要(yào)在F:\Project1中点中任何文件, 9X9红软基地
然后单(dān)击(jī)右键,TortoiseSVN->Add, 9X9红软基地
就(jiù)可以添(tiān)加多个文件或目录。 9X9红软基地
这时文件的状态图标会发生变化。 9X9红软基地
Add命令(lìng)只(zhī)是告(gào)诉本地的“Working Copy”将该文件(jiàn)纳(nà)入版本管理, 9X9红软基地
并没(méi)有(yǒu)将(jiāng)这个改变提交到服务器(qì)端, 9X9红软基地(dì)
如果想(xiǎng)要(yào)别人(rén)也看见你对Repository的修改(gǎi),你需要(yào) 9X9红软基地(dì)
在(zài)F:\Project1下(xià)单(dān)击右键,SVN Commit..., 9X9红软基地
将你所(suǒ)做的修改(gǎi)提(tí)交到Repository。 9X9红(hóng)软基地
文件的状态图标也会更新。 9X9红软基(jī)地
不管(guǎn)你在“Working Copy”内添加、修改、删(shān)除文件后, 9X9红软基地
要想其他人也看见你的修(xiū)改, 9X9红软基地(dì)
都必须(xū)用Commit命令将所做修(xiū)改(gǎi)递交到服务器端的Repository。9X9红软基地
3.修(xiū)改文件 9X9红(hóng)软(ruǎn)基地
用文本编(biān)辑器或IDE对文件修改(gǎi)后, 9X9红软基地
文件的状(zhuàng)态(tài)图(tú)标会变化, 9X9红(hóng)软基地
然后单击右键,SVN Commit... 9X9红软基地
提交修改,只有(yǒu)当执行Commit提交修(xiū)改后, 9X9红软基(jī)地
你所(suǒ)作的修改(gǎi)才会反(fǎn)映到服务器端的Repository中(zhōng)。9X9红软基(jī)地
4.删除(chú)文件(jiàn) 9X9红软基(jī)地
删除文件时,选中要删除(chú)的文件或目录, 9X9红软基地
单(dān)击右键,TortoiseSVN->Delete,提交修(xiū)改。 9X9红(hóng)软基地(dì)
注意(yì)千万不要用“Delete”键来删除文件,否(fǒu)则将(jiāng)无法提交你的修改。 9X9红(hóng)软(ruǎn)基地
这一(yī)点对目录的(de)删除来说尤为重要。9X9红软基地(dì)
5.放弃修改 9X9红(hóng)软基地
当你添加(jiā)、修改、删除(chú)文件后,决定放(fàng)弃修改, 9X9红软(ruǎn)基地
你可(kě)以单(dān)击右键,TortoiseSVN->Revert, 9X9红软基地
本地的“Working Copy”中(zhōng)的文件和(hé)目录会恢(huī)复到你修改前的状态。9X9红软基地(dì)
6.获取Repository的(de)最新版本 9X9红软基(jī)地
当一个团(tuán)队合作开发项目时, 9X9红软基地
每一个(gè)人都在不断的对(duì)Repository进行更新, 9X9红软(ruǎn)基(jī)地
你需要不(bú)断(duàn)的更新自己的“Working Copy”, 9X9红软基地
以获取项目最(zuì)新的(de)文件。 9X9红软基(jī)地(dì)
当第一次获得最新Repository的文件时, 9X9红(hóng)软基地(dì)
我们用(yòng)Checkout命令,前面已经介绍了, 9X9红软基地
以后再获取最新文件(jiàn)时就不(bú)用Checkout了。 9X9红软(ruǎn)基地(dì)
而改用Update命令。 9X9红(hóng)软基地
接着前面的例子,这(zhè)时F:\Project1已(yǐ)经成为一(yī)个“Working Copy”了 9X9红软基地
(通(tōng)过(guò)执行Checkout命令),现在(zài)其他(tā)人已(yǐ)经对Repository进行(háng)了(le)修改, 9X9红(hóng)软(ruǎn)基(jī)地
我想将别人的修改反(fǎn)映到我的“Working Copy”中, 9X9红(hóng)软基地
具体的方法是:在F:\Project1目录上单(dān)击右键, 9X9红软基地
SVN Update。这(zhè)时F:\Project1中的文件(jiàn)就是(shì)最(zuì)新的版(bǎn)本了(le)。 9X9红软基(jī)地
注意,如果当(dāng)你的“Working Copy”中有被修改的文件, 9X9红软基地
或者有被删除(chú)的文(wén)件,并且还未提(tí)交这些修改时, 9X9红(hóng)软基地
这些文件在执行Update过程中是(shì)不会被更(gèng)新的。 9X9红软基地
比如你修改了F:\Project1下a.txt文件, 9X9红(hóng)软基(jī)地
还(hái)未提交修改,那么, 9X9红(hóng)软基地
当(dāng)你对F:\Project1进行Update时, 9X9红软基地
a.txt文件是不会更新为Repository上的a.txt文件(jiàn)的。 9X9红软基地(dì)
所以如(rú)果想放弃当前的(de)所(suǒ)有修改, 9X9红软基地
并将F:\Project1下所有文件及目录更新到最新版本, 9X9红软基地
应该先对F:\Project1执行Revert命令再执行Update命令。9X9红软基地(dì)
7.subversion的版本控制模型 9X9红软基地
当你(nǐ)用subversion进行版本控制时, 9X9红软(ruǎn)基地
Subversion会记录你对(duì)Repository进行的(de)每一(yī)次修改(包括添加,修改,删(shān)除等等(děng)), 9X9红(hóng)软(ruǎn)基地
每修改一次Repository都会产生一个新(xīn)的(de)Revision(修订版本号), 9X9红软基地
不同的(de)Revision代表(biǎo)了不同时刻(kè)Repository的状态, 9X9红(hóng)软基地
因(yīn)此我们可以用这(zhè)个(gè)Revision回朔任意时刻Repository的状态, 9X9红软基地
就像时间机器一样,也就是说某(mǒu)一Revision 9X9红软基(jī)地(dì)
就(jiù)是Repository在某一时(shí)刻的一(yī)个“快照”。 9X9红软基地(dì)
注意:Revision不是针对某一个文(wén)件或(huò)者目录, 9X9红软基地
而是针对整个Repository而(ér)言的。 9X9红软基地
每修改(gǎi)一次(cì)Repository,Revision 都(dōu)会增加1。 9X9红软基(jī)地(dì)
Subversion的版(bǎn)本(běn)控(kòng)制模(mó)型是一种叫做Copy-Modify-Merge 9X9红软(ruǎn)基地
(拷贝-修改-合并(bìng))的模型。 9X9红软基(jī)地
考虑这种情(qíng)况: 9X9红软基地
张三和李四是公司(sī)同一个部门的同事, 9X9红(hóng)软基地
他们共同维护一个文本文(wén)件a.txt, 9X9红(hóng)软基地
并且对该文(wén)件进行版本控制, 9X9红(hóng)软基地
因此他们把(bǎ)这个文件(jiàn)放到一个Repository上共同维护该文件(jiàn)。 9X9红软(ruǎn)基(jī)地
周一上午9点,张三和李四同时想对a.txt文件进行修改, 9X9红软基地
于是他们同时从Repository上(shàng)取得该文(wén)件的最新版本(běn)(Revision 10), 9X9红软基(jī)地
然后进行修改(gǎi)。过了三(sān)分钟,张三首先完成了修改(gǎi), 9X9红软基地
他在该(gāi)文(wén)件的第五行修(xiū)改了一个单词的(de)拼写(将Typo改为Type), 9X9红软基地(dì)
于是张三对修改后的文(wén)件执行Commit命(mìng)令, 9X9红软基(jī)地
将修改提交到服务器端(duān)的Repository中。 9X9红软基地
这时(shí)Repository的Revision变为11。 9X9红软(ruǎn)基地
六分钟过后,李四(sì)也完成了他(tā)的修改, 9X9红软基地(dì)
他(tā)修改了该文件第十行(háng)上的一个单词拼写(xiě)(将He改(gǎi)为(wéi)She), 9X9红软基地
于(yú)是他也对修改后的文件执行Commit命令, 9X9红软基地
这时(shí)Subversion 在(zài)提交修改时会(huì)发现, 9X9红软基地
李(lǐ)四修改的文件是Revision10的(de)a.txt文(wén)件, 9X9红软基地
而不(bú)是最新的Revision 11的a.txt文件。 9X9红软基(jī)地
于是,Subversion 提示李四在提(tí)交修改前, 9X9红(hóng)软基地
应该先将Working Copy更新(xīn)到最新(xīn)版本, 9X9红(hóng)软基地
李四执行Update命令(lìng)将(jiāng)Working Copy更新到Revision 11, 9X9红软基地(dì)
这时Subversion会提示已经完成合并, 9X9红(hóng)软基地
李(lǐ)四(sì)的a.txt文(wén)件的第五行的“Typo”已(yǐ)经变为了“Type”, 9X9红(hóng)软基地
第十行还是“She”,就是说Subversion已经将张(zhāng)三的修改“合(hé)并”到李四的a.txt文(wén)件中了。 9X9红软基地
之后,李四再执(zhí)行Commit命令,就(jiù)能将他对第十行的(de)修改(将He改为She) 9X9红软基地
提交到服(fú)务器(qì)端的Repository中了(le)(生成Revision 12)。 9X9红(hóng)软基地
但是(shì)这(zhè)种合并(bìng)在某些情况下会变得复杂一(yī)些, 9X9红(hóng)软基地
比如:李四对a.txt文件的修改并不是第十行, 9X9红软基地
而是与张三(sān)同样修改第五(wǔ)行的(de)单词, 9X9红软基地
李(lǐ)四(sì)将(jiāng)“Typo”改为“Typr”,并且提(tí)交(jiāo)修改, 9X9红软基地
这时Subversion会(huì)提(tí)示李四(sì)在提交修改前, 9X9红软基(jī)地
应该先将(jiāng)Working Copy更(gèng)新到最新版(bǎn)本, 9X9红软基地
李四执(zhí)行Update命(mìng)令将Working Copy更(gèng)新(xīn)到Revision 11, 9X9红软基地(dì)
这时Subversion将Revision11的a.txt文(wén)件与 9X9红软基地
李四修改的a.txt文件进行(háng)合并时发现李(lǐ)四修(xiū)改的同样是第五行, 9X9红软基地
于是Subversion就无(wú)法判断(duàn)是李(lǐ)四(sì)的修改(“Tpyr”) 9X9红软基地
正(zhèng)确还是(shì)张三(sān)的修改(“Type”)正确, 9X9红软基地(dì)
因为他们都是在Revision10的a.txt基础上(shàng)作的修改。 9X9红软基地
这种(zhǒng)情(qíng)况叫做Conflict(冲(chōng)突), 9X9红软基(jī)地
a.txt文件的图标会变(biàn)成一(yī)个黄色三角。 9X9红软基地
这时,只(zhī)能依靠李(lǐ)四(sì)自(zì)己去判断到底第三行应(yīng)该修(xiū)改为“Typr”还是“Type”。 9X9红软基地
当李四确(què)定修(xiū)改之后,在a.txt文件上单击右键,TortoiseSVN->Resolved 9X9红软(ruǎn)基(jī)地(dì)
告诉Subversion已经解(jiě)决了(le)Conflict。 9X9红(hóng)软基地
这时再执行Commit命令就能提交修改(生成Revision 12)。 9X9红软基地
Subversion 这种控制方式保(bǎo)证了你对文件所作的修改都是(shì)基于文(wén)件的最新版本(běn)。9X9红软基地(dì)
8.“.svn”目(mù)录 9X9红软基地
在(zài)客户端(duān)Working Copy的每一层目录中都会有一个“.svn”目(mù)录, 9X9红(hóng)软基地(dì)
该目(mù)录是Subversion进行管理用的(de)目录。 9X9红(hóng)软基地
不(bú)要手(shǒu)动(dòng)修改(gǎi)其中的文件。 9X9红(hóng)软基地
该目录存储(chǔ)了Working Copy的一个副本 9X9红软基地
(实际存储副本的(de)地方是F:\project1\.svn\text-base目(mù)录), 9X9红软(ruǎn)基地
比如:F:\Project1是(shì)一个(gè)Working Copy, 9X9红软基地
该目录下有两个文件a.txt和b.txt还有一个子(zǐ)目录ccc, 9X9红软基地
子目录ccc中还有一个d.txt文件。 9X9红软基地(dì)
“.svn”目录中存储的是你最近(jìn)一次执行(háng)完Update或者Commit命令之后当前(qián)目录中(zhōng)文件(jiàn)的副本, 9X9红软(ruǎn)基(jī)地
比如:F:\project1\.svn\text-base中(zhōng)存储的a.txt和b.txt 9X9红软(ruǎn)基(jī)地
是最近一(yī)次执行完(wán)Update或者(zhě)Commit命令之后F:\project1下的a.txt和b.txt的拷贝。 9X9红(hóng)软(ruǎn)基地
也就(jiù)是(shì)说你所作的修改都是基(jī)于“.svn”目录存储的那些文(wén)件。 9X9红软(ruǎn)基地(dì)
这种(zhǒng)机制可(kě)以让我们在不(bú)连接网络的情况下, 9X9红软基地
将Working Copy中的文件恢复到修改之前的状态。 9X9红软(ruǎn)基(jī)地
Subversion的Revert命令就是利用了这种机制来(lái)实(shí)现的(de)。 9X9红(hóng)软基地
比如你修改了F:\project1\a.txt文件, 9X9红软基地
这时你又改(gǎi)变了(le)主意想放弃(qì)对该文件的修改, 9X9红软基地
你(nǐ)可以单击右(yòu)键,TortoiseSVN->Revert, 9X9红(hóng)软(ruǎn)基地
修改过(guò)的(de)F:\project1\a.txt文件(jiàn) 9X9红软(ruǎn)基地
就会被F:\project1\.svn\text-base中a.txt文件(jiàn)的(de)副(fù)本所替(tì)代, 9X9红软(ruǎn)基地
使得a.txt恢复到修改前的(de)状态。 9X9红软基(jī)地
Working Copy中每一个子目录下都(dōu)会有一个“.svn”目录, 9X9红(hóng)软基地
并不是(shì)只有最上层(céng)目录才有(yǒu)“.svn”目录。 9X9红软基地
所以,F:\project1\ccc下也有一个(gè)“.svn”目(mù)录, 9X9红软(ruǎn)基地
该目录存储的是F:\project1\ccc\d.txt的副本 9X9红软基地
(d.txt的(de)副本(běn)位于F:\project1\ccc\.svn\text-base)。 9X9红软基地(dì)
也就是(shì)说每个“.svn”目(mù)录只(zhī)存储同级目录中的“文件”副本, 9X9红(hóng)软基地
而不存(cún)储(chǔ)“目录”副本。“.svn”目录存有(yǒu)许多(duō)重(chóng)要的内容, 9X9红软(ruǎn)基地
所以前(qián)面(miàn)说在删除文件或目录时, 9X9红软基地
必须(xū)用TortoiseSVN->Delete, 9X9红(hóng)软基地
而不能用“Delete”键来删除文(wén)件(jiàn)或目录,尤其(qí)是对于(yú)目(mù)录的删除。9X9红(hóng)软基地
9.混合版本 9X9红软基(jī)地
Subversion的Working Copy被设(shè)计成一种能够(gòu)包含不(bú)同版本的文(wén)件共(gòng)存的形式。 9X9红软基地
比如(rú)F:\Project1是一个Working Copy, 9X9红(hóng)软(ruǎn)基地
该目录下有(yǒu)两个文件a.txt和b.txt。 9X9红软基地
执行Update命令,将Working Copy更新到最新版本(Revision 24)。 9X9红(hóng)软基地
这(zhè)时,a.txt和b.txt的Revision都是24 9X9红软(ruǎn)基地
(其实(shí)对于单个文件来说并不(bú)存在(zài)Revision, 9X9红(hóng)软(ruǎn)基地
Revision是对于整个Repository而言的, 9X9红软基地
这里(lǐ)所指的是Repository的Revision24所存储(chǔ)的(de)a.txt和b.txt, 9X9红软基地
但为了方(fāng)便而(ér)采用这种描述方式,请注意,下同(tóng))。 9X9红(hóng)软基地
之后,你(nǐ)的同事(shì)修改了a.txt,并且提交了修改, 9X9红软基(jī)地
这(zhè)时Repository的Revision就变成25了。 9X9红软(ruǎn)基地(dì)
注意,这时你没有再次执行(háng)Update, 9X9红软基地
因(yīn)此你的Working Copy的(de)Revision还是24。 9X9红软基(jī)地
这时(shí)你修改了b.txt文件,并提交修改。 9X9红软基地
因为Revision25并没有对b.txt文件进行修(xiū)改, 9X9红(hóng)软(ruǎn)基地
因(yīn)此你(nǐ)对b.txt文件(jiàn)的(de)修(xiū)改是基(jī)于b.txt文件(jiàn)最(zuì)新的版本(běn), 9X9红软基地
所以不(bú)会出现Conflict。 9X9红软基地
当你(nǐ)提交b.txt的修(xiū)改后,产(chǎn)生Revision26。 9X9红软基地
这时你会(huì)发(fā)现你的Working Copy中的a.txt文件并不(bú)是Revision25中的a.txt文件(jiàn), 9X9红(hóng)软基地
它还是Revision24的a.txt文件,而你的b.txt文件是Revision26的b.txt文件。 9X9红(hóng)软基地
也就(jiù)是(shì)说当你(nǐ)Commit时,你的(de)Working Copy中(zhōng)只有(yǒu)你提(tí)交的那些文(wén)件是最新(xīn)版本, 9X9红软基地(dì)
而其(qí)他没有修改(gǎi)的文件并不会更新为最新版本(běn)。 9X9红软基地(dì)
这样就(jiù)造成(chéng)了你的Working Copy由不同(tóng)的(de)Revision文件所组成 9X9红软基地
(Revision24的a.txt文件和Revision26的(de)b.txt文(wén)件(jiàn))。 9X9红软基(jī)地
前(qián)面说(shuō)过在提交修改前(qián)必须(xū)保证你是在文(wén)件的最新(xīn)版本基础上修改, 9X9红软(ruǎn)基地
如果在这(zhè)种混合版(bǎn)本的(de)情况下, 9X9红软基地
怎样才(cái)能知道当前Working Copy中的文件(jiàn)是否为最新版本(běn)? 9X9红软基地
在前(qián)面所说的“.svn”目录中有一(yī)个文件名为“entries”的文件, 9X9红软基地
该文(wén)件记录了当前Working Copy中的每一个文件的Revision, 9X9红软基地(dì)
因此当(dāng)你Commit时,Subversion会从该文件中取得你提交(jiāo)文(wén)件的Revision, 9X9红(hóng)软基地
再与Repository的最(zuì)新Revision一比较就可以知(zhī)道你修改的文(wén)件(jiàn)是否基于该文件(jiàn)的最新(xīn)版本(běn)。9X9红(hóng)软基地
10.文件(jiàn)的锁定 9X9红软基地
前(qián)面说过Subversion的版本控制模型是(shì)一种叫做Copy-Modify-Merge 9X9红软基(jī)地
(拷贝-修改-合(hé)并)的(de)模型。 9X9红软(ruǎn)基地
该模型在对文(wén)本文件进行版(bǎn)本(běn)控制时工作的很好(hǎo), 9X9红软(ruǎn)基地
但(dàn)是(shì)有些(xiē)需要进(jìn)行版本控制的文件并不是文本文件, 9X9红软基地
比如说图(tú)像(xiàng)文件,这种模型在这种情况(kuàng)下就(jiù)不能正常工作了, 9X9红软基地
因为文本文件(jiàn)可以合并,而二进制文(wén)件(jiàn)则无法(fǎ)合并。 9X9红(hóng)软基地
所以Subversion从(cóng)1.2开始支持(chí)一种叫Lock-Modify-Unlock 9X9红(hóng)软基(jī)地
(锁定-修改-解锁)的版本(běn)控制模型。 9X9红软基地(dì)
在Windows下最常用的版本控制软(ruǎn)件Visual Source Safe(VSS)就(jiù)是采(cǎi)用这种模型。 9X9红(hóng)软基地(dì)
这种模型要求在对(duì)一个文件(jiàn)修改前首先要锁定这个文件, 9X9红(hóng)软(ruǎn)基地
然后才能修(xiū)改,这时,别人将(jiāng)无法(fǎ)对该文件进行修改, 9X9红软基地
当修(xiū)改完后再释(shì)放锁,使其(qí)他人可以对该文件进行锁定,然(rán)后修改。 9X9红软(ruǎn)基地(dì)
锁定文(wén)件的方(fāng)法是:TortoiseSVN->Get Lock...再点OK按钮, 9X9红软(ruǎn)基地
这(zhè)时就完成(chéng)了(le)对文件的锁定。 9X9红(hóng)软基地
这时(shí),如果(guǒ)其他人想对文件进行锁定时, 9X9红软基地
Subversion会对他(tā)提示该文件已经被(bèi)别人锁定。 9X9红软基地
当(dāng)你修(xiū)改完文(wén)件后,然后单击右键,SVN Commit..., 9X9红软基地
将修改(gǎi)提交(jiāo),默认情况下,提交的(de)时候(hòu)就会对该文件解锁, 9X9红软基地
如果你(nǐ)想仍然锁定该文件,请(qǐng)在commit时弹(dàn)出(chū)的对话框中选(xuǎn)中keep lock复(fù)选框。9X9红软基地
11.文件的(de)附加属(shǔ)性 9X9红软基地
在Subversion中,每个文(wén)件(jiàn)可(kě)以拥有(yǒu)一种叫做附加属性的(de)东西。 9X9红软基地
附加属性描述了该文件所拥有的一些特性。 9X9红软基地
Subversion已经预定义了一些附加(jiā)属(shǔ)性(xìng) 9X9红软基地
(这里(lǐ)只是指Subversion已经定义了一些附加属性的(de)“名称(chēng)”, 9X9红软基地
并不是指已(yǐ)经将这些属性附加在文件上了, 9X9红软基地
比如默认情况下文本文件一开始(shǐ)不含任何(hé)属性, 9X9红(hóng)软基地
直到人(rén)为的对该文(wén)件添加附(fù)加属(shǔ)性), 9X9红软基地
并(bìng)且(qiě)你(nǐ)可以对文件添(tiān)加自定义的属性。 9X9红(hóng)软基地
Subversion对待附加(jiā)属性就像(xiàng)对待文(wén)件(jiàn)内容一样, 9X9红软基地
当修改了一个文件的(de)附加属性(添加,改变,删除附加属(shǔ)性), 9X9红软基地
即使没有对文件(jiàn)的内容进行修(xiū)改, 9X9红软基(jī)地(dì)
同样可以Commit该(gāi)文件,就像更改了(le)文件内容那样, 9X9红软基地
Repository也会生成新的Revision, 9X9红软基(jī)地
所以从(cóng)某(mǒu)种意义上来说, 9X9红软基地
Subversion不区别对待文件的附(fù)加属性(xìng)的(de)修改和文件的(de)内容的修改(gǎi), 9X9红软基地
文件的附(fù)加(jiā)属性可以看成是一种特殊(shū)的文(wén)件内(nèi)容(róng)。 9X9红软基地
Subversion预定义了若干个附加(jiā)属性(xìng), 9X9红软(ruǎn)基地(dì)
这里(lǐ)只讨论“svn:needs-lock”属(shǔ)性, 9X9红软基地
因为它(tā)与我们上面的文(wén)件锁(suǒ)定会产生的一个问题(tí)有关。 9X9红软基地
其他(tā)的属性可以参考(kǎo)Subversion自带的帮助文档。 9X9红软基地
考虑这(zhè)种情(qíng)况(kuàng), 9X9红软基(jī)地(dì)
张三和李四同时(shí)想对一(yī)个图(tú)片(piàn)文件a.jpg作修改, 9X9红软基地
张三在修改时先将该文件锁定,然后进行修(xiū)改, 9X9红软基地
同(tóng)时李四也开始(shǐ)对(duì)该文件进行修改, 9X9红软基地
但李四忘记了对非文本文件进行修改时应该先锁定该(gāi)文件。 9X9红软(ruǎn)基(jī)地
张三(sān)首先(xiān)对(duì)该文件(jiàn)修改完毕,于是张三(sān)向服务器提交了他(tā)的修改。 9X9红软基地
之后,李(lǐ)四也完(wán)成了修改,当他(tā)提交修改时, 9X9红软(ruǎn)基地(dì)
Subversion提示李四的文件版本不是最(zuì)新的, 9X9红软基地
在Commit之前应先更新(xīn)a.jpg到最新版(bǎn)本, 9X9红(hóng)软基(jī)地(dì)
由(yóu)于图(tú)片(piàn)文件无法合并, 9X9红(hóng)软基地
这就意味着张三和李四之间(jiān)必定有(yǒu)一个人的(de)修改会作废。 9X9红软基地
应用“svn:needs-lock”属性可以(yǐ)避免这(zhè)个问题。 9X9红软基地
当一个文件(jiàn)拥有“svn:needs-lock”属性(xìng)时, 9X9红软基(jī)地
该文件在没有锁定时,文件的图标是(shì)灰色(sè)的, 9X9红软基地(dì)
表示该(gāi)文件是一个只读(dú)文件(该(gāi)文件的(de)Windows只读属性的复(fù)选框为选中), 9X9红软基地
这个灰色的图标就会提醒想对该文(wén)件(jiàn)进行修改的人, 9X9红(hóng)软基地
在修改该(gāi)文件之前应(yīng)该(gāi)首先(xiān)锁定该文件。 9X9红(hóng)软基地(dì)
锁(suǒ)定该文件之后,文件(jiàn)的只读(dú)属性就会去掉了, 9X9红(hóng)软(ruǎn)基地(dì)
一旦释放掉锁,文件的(de)图标又(yòu)会变成灰色(sè), 9X9红软基地
文件也会变成只(zhī)读(dú)的了(le)。 9X9红软基地(dì)
李(lǐ)四在这种情况下就会避免在没有锁定文件时对文(wén)件进行修改。 9X9红软基地
对非文(wén)本文件添加“svn:needs-lock” 9X9红(hóng)软(ruǎn)基(jī)地
属性应该在将(jiāng)该文(wén)件第(dì)一次添加到Repository时就设置, 9X9红软基(jī)地
当然,一个文件可以在任意(yì)时刻添加附加属性, 9X9红软基地
这样做(zuò)是为了减少李(lǐ)四所(suǒ)遇(yù)到的那个(gè)问题发(fā)生的几率。 9X9红软基(jī)地
具(jù)体(tǐ)的方法(fǎ)是(shì): 9X9红(hóng)软基(jī)地
首先将(jiāng)a.jpg文件拷贝到Working Copy中, 9X9红(hóng)软基地
然后在该文件(jiàn)上单(dān)击右键, 9X9红软基地
TortoiseSVN->Add,告诉(sù)Subversion要将该文件(jiàn)纳入版本控制, 9X9红软基地
接着在(zài)该文件上(shàng)单击右(yòu)键并选中属性(xìng), 9X9红软(ruǎn)基(jī)地
在弹出的属性对话框中选中Subversion页。 9X9红软基地
在下拉框中选中“svn:needs-lock”, 9X9红软基地
并在下面的文(wén)本框中填入“*” 9X9红软基地
(其实这里填什(shí)么(me)都无所谓,只要(yào)文件有“svn:needs-lock”附加属性(xìng)就行), 9X9红软(ruǎn)基地(dì)
之后点(diǎn)Set按钮,“svn:needs-lock”附加(jiā)属性就设(shè)置好了。 9X9红软基地
然后执行Commit命令提交修改。 9X9红(hóng)软基地
这时当(dāng)其他人执行Update时, 9X9红软基地
a.jpg就会添加到他们的Working Copy中, 9X9红软基地(dì)
并且文件的附加属性也会随(suí)文件一起(qǐ)被得到(dào)。 9X9红软基地(dì)
可以看到a.jpg此(cǐ)时的图标就是灰色的, 9X9红软基地
文(wén)件的Windows属性(xìng)也(yě)是只读的。9X9红软基地
12.回到以前(qián)的版(bǎn)本 9X9红软基(jī)地
由于Subversion会记录你(nǐ)对Repository的每一次修(xiū)改, 9X9红(hóng)软基地
因此能(néng)够很容易的获得Repository以前某一时刻的状态。 9X9红(hóng)软基地
比如:现在Repository的最新Revision是(shì)56, 9X9红软基(jī)地
这时我想看看Repository在Revision24时(shí)的状态, 9X9红软基(jī)地
可以在(zài)本地(dì)的Working Copy中(zhōng)单击右键, 9X9红软基地
TortoiseSVN->Update to Revision..., 9X9红软基地
然后(hòu)输入你想要回复到的Revision号,点OK按钮。 9X9红软基地
回到(dào)以前的版本还(hái)有(yǒu)一种情况是我想将Repository的 9X9红(hóng)软基地
最新Revision的状态与以(yǐ)前某一(yī)个Revision的(de)状态一模一(yī)样, 9X9红(hóng)软基地
上面(miàn)那种方法(fǎ)就不适(shì)合, 9X9红软(ruǎn)基地
上面的那(nà)种(zhǒng)方法只是将本地(dì)的Working Copy回复到以前的状态, 9X9红软基地
而服(fú)务器端的Repository并没有回到以(yǐ)前(qián)的状态。 9X9红软基地
将Repository的最新Revison的状(zhuàng)态回复到以前某(mǒu)个Revision的状态具体的方法是:9X9红软基地
先执(zhí)行Update命令将Working Copy更新到(dào)最新(xīn)的(de)Revision, 9X9红软(ruǎn)基地
然(rán)后在(zài)Working Copy中单击(jī)右键, 9X9红软基地
TortoiseSVN->Show Log, 9X9红软(ruǎn)基地
弹出的(de)Log Messages窗口中会(huì)显示该(gāi)Repository的所有Revision, 9X9红软基地
选中最新(xīn)的(de)Revision,之后(hòu)按住Shift键, 9X9红软基地
再单击你想回复到的Revision+1的那个Revision 9X9红(hóng)软基地
(比如Repository的最新Revision是30, 9X9红软基地
你想将Repository的状态回复到Revision16, 9X9红软基地
那么就选中(zhōng)Revision30,再按住Shift键, 9X9红软基地
选中Revision17, 9X9红软基(jī)地
就是说选中Revision17到Revision30之间的所有Revision)。 9X9红软基(jī)地(dì)
然(rán)后在选中的Revision上(shàng)单(dān)击右键, 9X9红(hóng)软基地(dì)
选(xuǎn)中(zhōng)“Revert changes from these revision”。 9X9红软基地
再点Yes按钮,就可以将(jiāng)Working Copy的状态回复(fù)到目标Revision。 9X9红软基地
注意,此时只是Working Copy回复到(dào)目标Revision, 9X9红软基地
之(zhī)后应该用Commit提交修改, 9X9红软(ruǎn)基地(dì)
这样Repository最新状态就与目标Revision的状(zhuàng)态一样了。 9X9红(hóng)软基(jī)地
这两种回复到以前(qián)版本的方式(shì)截然(rán)不同(tóng), 9X9红软基(jī)地
第一种(zhǒng)方式(shì)是将(jiāng)整个(gè)Working Copy回复到某个Revision, 9X9红软(ruǎn)基地
也就(jiù)是(shì)说(shuō)这种方式Working Copy中的“.svn”目录所存的文件副本也与目(mù)标Revision的一(yī)模一样, 9X9红软基地
如果这时你没有修改文(wén)件,你将不(bú)能执行Commit命令。 9X9红软(ruǎn)基地
而第二种方式客户(hù)端Working Copy中的 9X9红软基(jī)地
“.svn”目录(lù)所存的副本始(shǐ)终(zhōng)是最新的Revision的文件(jiàn)副(fù)本 9X9红软(ruǎn)基地
(这里我们(men)基于(yú)一个假设(shè):在Update之后没有其他人对Repository做修改)。 9X9红软基地
这种方式就像是(shì)我们(men)自己手工(gōng)将Working Copy的文件状态(tài)修改为目标Revision, 9X9红软基地
在修改(gǎi)之后提交修改一样。9X9红(hóng)软基地
13.查看修改 9X9红(hóng)软基地
有时我们对(duì)Working Copy的许多文件进行(háng)了修改, 9X9红软基地
这些文件(jiàn)位于不同(tóng)的子目录,我们(men)就可以在Working Copy的最上层目录单击右键(jiàn), 9X9红软(ruǎn)基地(dì)
TortoiseSVN->Check For Modifications, 9X9红软(ruǎn)基地
弹出的对话框就会(huì)显示你所做的所有修改明(míng)细。 9X9红软基地(dì)
还有一种情况(kuàng)是我们的(de)Working Copy已经很久没有执(zhí)行Update命(mìng)令, 9X9红软基地
我们想看看Working Copy中(zhōng)有哪些文件已经发生修改了, 9X9红软(ruǎn)基(jī)地
这(zhè)时就(jiù)可以在Working Copy的最上层目录(lù)单击右键, 9X9红软(ruǎn)基地
TortoiseSVN->Check For Modifications, 9X9红软基地
在弹出的对话框点(diǎn)击Check Repository按钮后, 9X9红软基地
就会显示服务器端已经修改了的文件。 9X9红软基地(dì)
该方法还有一个用途(tú)就(jiù)是查看(kàn)文件的锁(suǒ)定, 9X9红软基地(dì)
当你想锁定一个(gè)文(wén)件时,你(nǐ)想先看看这(zhè)个文件有(yǒu)没有被别人锁定, 9X9红(hóng)软基地(dì)
点击Check Repository按钮会(huì)显示服务(wù)器端(duān)Repository所有被锁(suǒ)定的文(wén)件, 9X9红软基(jī)地
如果你想(xiǎng)锁定的文件(jiàn)不在这里面,那(nà)就说(shuō)明该文件(jiàn)目(mù)前没(méi)有人锁定。9X9红软基地

软件截(jié)图

svn客户端64位版1.8.10.26129中文win7/win8通用(yòng)版9X9红软基地

红软基地破(pò)解版软件(jiàn)均来(lái)自互联网(wǎng), 如有侵(qīn)犯您的(de)版(bǎn)权(quán), 请与我们联系。
软件下载地址
svn客户端(duān)64位版1.8.10.26129中文win7/win8通用(yòng)版
软件推荐
下(xià)载排行

精品软(ruǎn)件

热门(mén)关(guān)键词

热门软件推荐(jiàn)