拉取代码:
svn checkout svn://192.168.63.1/DV2020T --username=yanqw --password=S9lmRmv
如果是第二次则可以直接
svn checkout url
查询当前的状态:
svn st
?:代表新增文件,且未ADD,需要先Add才能提交
A:代表Add状态的文件,可直接提交
M:代表有修改的文件
C:表示文件发生冲突。
D:表示文件或目录被计划删除。
I:表示文件被忽略(通常是通过设置忽略规则)。
X:表示外部定义(例如外部项目引用)出现问题。
!:表示文件丢失或者不完整(可能是被误删除或者损坏)。
如果是A/M说明他们在版本管理之中,则可以直接commit提交,如果是?则需要add进版本控制再commit,如执行:
svn add X86/trunk/SioChatDemo_CM
这里可以是文件也可以是目录
或者遍历自动添加:
svn add . --force
提交代码,这是最后一步,执行完后就已经同步到远端了:
svn commit -m "init 完成推拉流"
执行完上面这一步骤开始把本地的代码推流到svn服务器上。
或者提交子目录或子目录下的单个文件:
svn commit src/apps lib/libpthread.so.0 -m “修改了文件”
如果有成员改动并进行了新的提交,本地更新命令如下:
svn update
如果本地也进行了改动,这个命令不会覆盖本地的改动。
如果想更新一个子目录可以使用:
svn update patha/pathb
H其中pathb可以是文件也可以是目录。
如果你想从版本库中删除一个文件,你可以使用 svn delete 命令。例如,你可以使用以下命令删除文件 file1.txt:
svn delete file1.txt
删除文件后,它仍然会留在本地文件系统中,但是它已从版本库中删除。
使用 svn commit 命令将更改提交到版本库中,以使删除操作生效。例如,你可以使用以下命令将删除文件 file1.txt 的更改提交到版本库中(这时并不必须在文件家中删除这个文件也可以执行以下操作):
svn commit -m "删除了文件 file1.txt"
要在 SVN 中拉取历史版本,你可以使用 “svn update” 命令,例如:
svn update -r {REVISION}
你可以使用 “svn log” 命令来查看所有提交的版本号
svn log
你也可以使用 “svn info” 命令来查看当前版本的版本号,例如:
svn info
在 svn 中,可以使用 svn diff 命令比较两个版本之间的差异。该命令可以比较两个文件或者目录之间的差异,并生成一个差异报告。
语法格式如下:
svn diff [PATH]
其中,PATH 表示需要比较的文件或者目录的路径。如果不指定 PATH,则默认比较当前目录与基准版本之间的差异。
例如,比较版本 100 和版本 200 之间的差异,可以使用以下命令:
svn diff -r 100:200 [PATH]
其中,-r 100:200 表示比较版本号从 100 到 200 之间的差异。如果省略 PATH 参数,则默认比较当前目录与基准版本之间的差异。
此外,还可以通过 --summarize 参数以列表形式列出文件差异信息,或使用 -c 参数来查看某个版本的修改内容。
用来查看当前版本与上个版本在代码细节上的差异。
svn diff -c 100 [PATH]
当前版本与上个版本相比有哪些文件修改了。
svn diff -c 100 [PATH] --summarize
更多 svn diff 命令的用法,可以使用 svn help diff 命令查看帮助文档。
删除某个版本的方法:
在 SVN 中,删除单个版本的操作不是直接删除版本,而是使用“反向合并”(reverse merge)来将该版本的更改撤销。具体步骤如下:
确定要删除的版本号,例如,我们要删除版本号为 r123 的提交。
将 HEAD 更新到要删除版本的前一个版本,例如,如果要删除版本号为 r123,则应该更新到版本号为 r122。
svn update -r122
进行反向合并操作,将要删除的版本号的更改撤销。
svn merge -c -123 .
上述命令中,“-c”表示将指定版本的更改进行反向合并,“-123”表示要删除的版本号,点号(“.”)表示当前目录。
提交撤销操作。
svn commit -m "Reversing changes in r123."
上述命令中,“-m”表示提交时的注释信息。
完成上述操作后,版本 r123 的更改就被撤销了。请注意,该版本并没有被彻底删除,只是将其更改撤销了,历史记录中仍然可以看到该版本的记录。如果需要完全删除一个版本,需要使用 SVN 的管理员命令来实现。
冲突解决:
当您在使用svn合并分支或更新代码时,如果SVN发现冲突,则会出现类似“
冲突概要:
Text conflicts: 1
Merge conflict discovered in file”
的消息。此时,您需要解决冲突才能继续提交代码。在此过程中,您可以使用以下选项:
§ Postpone:暂时跳过此冲突,稍后再解决。这意味着您可以稍后回到这个文件并解决冲突。
(df) Show diff:显示本地和远程版本之间的差异。使用此选项可以比较本地和远程版本,并找出哪些部分发生了冲突。
(e) Edit file:手动编辑冲突文件,直接在文件中修改并解决冲突。
(m) Merge:尝试自动合并冲突。使用此选项,Subversion会尝试自动解决冲突,如果成功,文件将标记为已解决;否则,您需要手动解决冲突。
® Mark as resolved:标记文件已经解决,即使您没有实际解决冲突。使用此选项,您可以告诉Subversion文件已经解决,即使它实际上没有解决。
(s) Show all options:显示所有选项列表。
根据您的需求,您可以选择适当的选项来解决冲突,以便您可以继续进行代码提交。
切换用户:
删除目录 ~/.subversion/auth/ 下的所有文件。下一次操作svn时会提示你重新输入用户名和密码的。换成你想用的就可以了。然后系统默认会记录下来的。