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扑克




  • 红软基(jī)地:您身(shēn)边最放心(xīn)的安全下(xià)载站!
您所(suǒ)在的位置:首页(yè) > 软件 > 热门(mén)软(ruǎn)件 > svn客(kè)户(hù)端64位版1.8.10.26129中文(wén)win7/win8通用版

svn客户端64位版1.8.10.26129中文win7/win8通用版

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

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

软件介绍

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

svn客(kè)户端使用教程

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

软件截图

svn客户端64位版1.8.10.26129中文win7/win8通用版9X9红软(ruǎn)基地

红软基地破解版软件均来自(zì)互联网, 如有侵犯您的(de)版权, 请与我们联系。
软件下载地址
svn客户端(duān)64位版1.8.10.26129中文win7/win8通用版
软件推荐
下载排行

精品软件

热(rè)门关键词

热门软件推荐(jiàn)