- 浏览: 885802 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- android (55)
- CSS (23)
- eclipse (25)
- Data Structes and Algorithms (53)
- J2SE (87)
- Java_面试学习_j2se (26)
- java_面试学习_非技术 (13)
- java_gui (2)
- java_设计模式 (27)
- JDBC (10)
- java_web (15)
- hibernate (5)
- Oracle (37)
- Struts2 (7)
- Word-----dos (24)
- Jbpm (3)
- java小技巧 (8)
- math (1)
- flex (12)
- WebService (4)
- 生活 (9)
- 小框架或小语言 (27)
- spring (1)
- 面试~~~软实力 (7)
- jstat的用法 (1)
- jmap (1)
- 数据链路层和传输层的流量控制区别 (1)
- shell (0)
- 财商 (1)
- javascript (0)
- js研究 (1)
- 代码收集 (0)
最新评论
-
海尔群:
http://jingyan.baidu.com/articl ...
android加密 -
完美天龙:
------------------------- ...
asm----字节码操纵 -
houniao1990:
大神,请问 string 类型 定义为 oracle的 cha ...
hibernate注解 -
JamesQian:
Line:103
f.doFilter(msg);
是否需 ...
责任链模式_过滤器模式 -
sacoole:
好评
interview--- 如何从N个数中选出最大(小)的n个数?
svn命令 通常都有帮助,可通过如下方式查询:
$ svn help
知道了子命令,但是不知道子命令的用法,还可以查询:
$ svn help add
开发人员常用命令
(1) 导入项目
$ cd ~/project
$ mkdir -p svntest/{trunk,branches,tags}
$ svn import svntest https://localhost/test/svntest --message "Start project"
...
$ rm -rf svntest
我们新建一个项目svntest,在该项目下新建三个子目录:trunk,开发主干;branches,开发分支;tags,开发阶段性标签。然后导入到版本库test下,然后把svntest拿掉。
(2) 导出项目
$ svn checkout https://localhost/test/svntest/trunk
修订版本号的指定方式是每个开发人员必须了解的,以下是几个参考例子,说明可参考svn推荐书。
$ svn diff --revision PREV:COMMITTED foo.c
# shows the last change committed to foo.c
$ svn log --revision HEAD
# shows log message for the latest repository commit
$ svn diff --revision HEAD
# compares your working file (with local changes) to the latest version
# in the repository
$ svn diff --revision BASE:HEAD foo.c
# compares your “pristine” foo.c (no local changes) with the
# latest version in the repository
$ svn log --revision BASE:HEAD
# shows all commit logs since you last updated
$ svn update --revision PREV foo.c
# rewinds the last change on foo.c
# (foo.c's working revision is decreased)
$ svn checkout --revision 3
# specified with revision number
$ svn checkout --revision {2002-02-17}
$ svn checkout --revision {15:30}
$ svn checkout --revision {15:30:00.200000}
$ svn checkout --revision {"2002-02-17 15:30"}
$ svn checkout --revision {"2002-02-17 15:30 +0230"}
$ svn checkout --revision {2002-02-17T15:30}
$ svn checkout --revision {2002-02-17T15:30Z}
$ svn checkout --revision {2002-02-17T15:30-04:00}
$ svn checkout --revision {20020217T1530}
$ svn checkout --revision {20020217T1530Z}
$ svn checkout --revision {20020217T1530-0500}
(3) 日常指令
$ svn update
$ svn add foo.file
$ svn add foo1.dir
$ svn add foo2.dir --non-recursive
$ svn delete README
$ svn copy foo bar
$ svn move foo1 bar1
$ svn status
$ svn status --verbose
$ svn status --verbose --show-updates
$ svn status stuff/fox.c
$ svn diff
$ svn diff > patchfile
$ svn revert README
$ svn revert
修改冲突发生时,会生成三个文件:.mine, .rOLDREV, .rNEWREV。比如:
$ ls -l
sandwich.txt
sandwich.txt.mine
sandwich.txt.r1
sandwich.txt.r2
解决修改冲突方式之一:修改冲突的文件sandwich.txt,然后运行命令:
$ svn resolved sandwich.txt
方式之二:用库里的新版本覆盖你的修改:
$ cp sandwich.txt.r2 sandwich.txt
$ svn resolved sandwich.txt
方式之三:撤销你的修改,这种方式不需要运行resolved子命令:
$ svn revert sandwich.txt
Reverted 'sandwich.txt'
$ ls sandwich.*
sandwich.txt
确保没问题后,就可以提交了。
$ svn commit --message "Correct some fatal problems"
$ svn commit --file logmsg
$ svn commit
(4) 检验版本历史
$ svn log
$ svn log --revision 5:19
$ svn log foo.c
$ svn log -r 8 -v
$ svn diff
$ svn diff --revision 3 rules.txt
$ svn diff --revision 2:3 rules.txt
$ svn diff --revision 4:5 http://svn.red-bean.com/repos/example/trunk/text/rules.txt
$ svn cat --revision 2 rules.txt
$ svn cat --revision 2 rules.txt > rules.txt.v2
$ svn list http://svn.collab.net/repos/svn
$ svn list --verbose http://svn.collab.net/repos/svn
$ svn checkout --revision 1729 # Checks out a new working copy at r1729
…
$ svn update --revision 1729 # Updates an existing working copy to r1729
…
(5) 其他有用的命令
svn cleanup
为失败的事务清场。
(6) 分支和合并
建立分支方法一:先checkout然后做拷贝,最后提交拷贝。
$ svn checkout http://svn.example.com/repos/calc bigwc
A bigwc/trunk/
A bigwc/trunk/Makefile
A bigwc/trunk/integer.c
A bigwc/trunk/button.c
A bigwc/branches/
Checked out revision 340.
$ cd bigwc
$ svn copy trunk branches/my-calc-branch
$ svn status
A + branches/my-calc-branch
$ svn commit -m "Creating a private branch of /calc/trunk."
Adding branches/my-calc-branch
Committed revision 341.
建立分支方法二:直接远程拷贝。
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
Committed revision 341.
建立分支后,你可以把分支checkout并继续你的开发。
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
假设你已经checkout了主干,现在想切换到某个分支开发,可做如下的操作:
$ cd calc
$ svn info | grep URL
URL: http://svn.example.com/repos/calc/trunk
$ svn switch http://svn.example.com/repos/calc/branches/my-calc-branch
U integer.c
U button.c
U Makefile
Updated to revision 341.
$ svn info | grep URL
URL: http://svn.example.com/repos/calc/branches/my-calc-branch
合并文件的命令参考:
$ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk
$ svn commit -m "integer.c: ported r344 (spelling fixes) from trunk."
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk my-calc-branch
$ svn merge http://svn.example.com/repos/branch1@150 \
http://svn.example.com/repos/branch2@212 \
my-working-copy
$ svn merge -r 100:200 http://svn.example.com/repos/trunk my-working-copy
$ svn merge -r 100:200 http://svn.example.com/repos/trunk
$ svn merge --dry-run -r 343:344 http://svn.example.com/repos/calc/trunk
最后一条命令仅仅做合并测试,并不执行合并操作。
建立标签和建立分支没什么区别,不过是拷贝到不同的目录而已。
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/tags/release-1.0 \
-m "Tagging the 1.0 release of the 'calc' project."
$ ls
my-working-copy/
$ svn copy my-working-copy http://svn.example.com/repos/calc/tags/mytag
Committed revision 352.
后一种方式直接把本地的工作拷贝复制为标签。
此外,你还可以删除某个分支。
$ svn delete http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Removing obsolete branch of calc project."
管理人员常用命令
(7) 版本库管理
$ svnadmin help
...
$ svnadmin help create
...
$ svnadmin create --fs-type bdb /usr/local/repository/svn/test
$ chown -R svn.svn /usr/local/repository/svn/test
建立版本库,库类型为bdb(使用Berkeley DB做仓库),库名称为test。
svn版本库有两种存储方式:基于Berkeley DB(bdb)或者基于文件系统(fsfs),通过 –fs-type可指定存储方式。
(8) 查询版本库信息
$ svnlook help
...
$ svnlook help tree
...
$ svnlook tree /usr/local/repository/svn/test --show-ids
bash> svn help
用法:svn <subcommand> [options] [args]
Subversion 命令行客户端,版本 1.2.0。
请使用 “svn help <subcommand>” 显示子命令的辅助说明。
大多数的子命令可接受文件或目录参数,对目录进行递回存取。
如无指定参数给命令,默认将会自当前的目录 (包含) 进
行递归存取。
可用的子命令:(括号内是子命令的简写)
add
blame (praise, annotate, ann)
cat
checkout (co) //从源码库取出一个工作版本的拷贝
cleanup //
commit (ci) //提交当前工作拷贝的更改。这个地方是有可能出现代码冲突的。
copy (cp) //做一个工作拷贝的拷贝。
delete (del, remove, rm) //删除本地或者svn server response上的文件或者目录。
diff (di) //比较某个文件与库中的对应文件的不同,类似于系统的diff命令。参数:文件名。
export //导出一个无版本控制的目录树拷贝。一般用于导出发行,或者投入运行的版本。
help (?, h)
import //将本地当前目录下的文件导入到svn response 中。
info //当前目录下工作拷贝中某文件(文件夹)的信息,如URL,版本,修改日期等。参数:要看的文件(文件夹)
list (ls) //列出当前工作拷贝下的文件 ,相当于系统的ls命令,不过只能在工作拷贝目录下使用。
lock
log
merge //将两个来源之间的差异应用至工作拷贝路径。
mkdir //在本地或者svn respon上新建一个文件夹.参数:URL或者路径
move (mv, rename, ren)
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
resolved
revert
status (stat, st) //svn工作拷贝当前状态,与svn server上的源码比较的结果。
switch (sw)
unlock
update (up) //将svn server端文件同步到本地
Subversion 是个版本控制系统的工具。
欲取得详细资料,请参考 http://subversion.tigris.org/
>svn co
checkout (co): Check out a working copy from a repository.
usage: checkout URL[@REV]... [PATH]
If specified, REV determines in which revision the URL is first
looked up.
If PATH is omitted, the basename of the URL will be used as
the destination. If multiple URLs are given each will be checked
out into a sub-directory of PATH, with the name of the sub-directory
being the basename of the URL.
有效选项:
-r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 )
修订版参数可以是:
数字 修订版号
"{" 日期 "}" 在指定时间以后的修订版date
"HEAD" 最近的档案库
"BASE" 基线,基于修订版的工作条目
"COMMITTED" 最后提交或基线之前
"PREV" 修订版提交之前
-q [--quiet] : 打印尽可能少
-N [--non-recursive] : 只在单个目录操作
--username arg : 指定用户 ARG
--password arg : 指定密码 ARG
--no-auth-cache : 不要缓冲用户验证
--non-interactive : 不要交互提示
--config-dir arg : 从目录 ARG 读取用户配置文件
--ignore-externals : ignore externals definitions
sh> svn add
add: 把文件和目录放入版本控制中,
通过调度加到档案库。它们会在下一次提交时加入。
用法:add 路径...
有效选项:
--targets arg : 传递文件 ARG 内容为附件参数
-N [--non-recursive] : 只在单个目录操作
-q [--quiet] : 打印尽可能少
--config-dir arg : 从目录 ARG 读取用户配置文件
--force : 强制操作运行
--auto-props : 使自动属性有效
--no-auto-props : 使自动属性无效
eg.(下面的命令必须在工作拷贝目录下运行)
sh> svn add test.c //加一个文件
sh> svn add test //加一个目录,目录下有任意结构的文件夹
sh> svn import http://localhost/svn/hehehehehhe -m=sdfsdf //可在任何目录下,将当前文件夹下的所以文件递归导入到svn response 的hehehhhe目录下。
sh>svn export
export: 产生一个无版本控制的目录树拷贝。
用法:1、export [-r REV] URL[@PEGREV] [PATH]
2、export [-r REV] PATH1[@PEGREV] [PATH2]
1、从 URL 指定的档案库,导出一个干净的目录树到 PATH。如果有指定
REV 的话,内容即为该修订版的,否则就是 HEAD 修订版。如果 PATH
被省略的话,地址(URL)的最后部份会被用来当成本地的目录名称。
2、在工作拷贝中,从指定的 PATH1 导出一个干净的目录树到 PATH2。如果
有指定 REV 的话,会从指定的修订版导出,否则从 WORKING 导出。如果
PATH2 被省略的话,PATH1 的最后部份会被用来当成本地的目录名称。
如果没有指定 REV 的话,所有的本地修改都还会保持著,但是未纳入
版本控制的文件不会被复制。
如果指定了 PEGREV ,将从指定的修订版本开始查找。
有效选项:
-r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 )
修订版参数可以是:
数字 修订版号
"{" 日期 "}" 在指定时间以后的修订版date
"HEAD" 最近的档案库
"BASE" 基线,基于修订版的工作条目
"COMMITTED" 最后提交或基线之前
"PREV" 修订版提交之前
-q [--quiet] : 打印尽可能少
-N [--non-recursive] : 只在单个目录操作
--force : 强制操作运行
--username arg : 指定用户 ARG
--password arg : 指定密码 ARG
--no-auth-cache : 不要缓冲用户验证
--non-interactive : 不要交互提示
--config-dir arg : 从目录 ARG 读取用户配置文件
--native-eol arg : 使用一个与标准不同的 EOL 标记
文件的系统标记是一个本地的 svn:eol-style 属性。
ARG 可能是一下之一 'LF','CR','CRLF'
--ignore-externals : ignore externals definitions
eg.
sh> svn export http://localhost/svn/hehehehehhhe
sh> svn merge
merge: 将两个来源之间的差异应用至工作拷贝路径。
用法:1、merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
2、merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
3、merge -r N:M SOURCE[@REV] [WCPATH]
1、第一种形式中,来源 URL 各被指定到修订版 N 与 M。这两个就是作为
比较的来源。如果没有指定修订版的话,默认为 HEAD。
2、在第二种形式中,对应到两个来源的工作拷贝路径的 URL 定义出用以
进行比较的来源。这里必须指定修订版。
3、第三种形式中,SOURCE 可为 URL 或工作拷贝项目,后者会使用对应的
地址(URL)。在修订版 REV 的 地址(URL) 会以它存在于修订版 N 与 M 的路径来作
比较。如果未指定 REV,就会假设为 HEAD。
WCPATH 是接受改变的工作拷贝路径。如果省略 WCPATH 的话,默认值为
'.',除非来源的主要名字符合 '.' 里的某个文件;在这种情况下,文件
差异将会直接应用至该文件去。
有效选项:
-r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 )
修订版参数可以是:
数字 修订版号
"{" 日期 "}" 在指定时间以后的修订版date
"HEAD" 最近的档案库
"BASE" 基线,基于修订版的工作条目
"COMMITTED" 最后提交或基线之前
"PREV" 修订版提交之前
-N [--non-recursive] : 只在单个目录操作
-q [--quiet] : 打印尽可能少
--force : 强制操作运行
--dry-run : 尝试操作但不修改
--diff3-cmd arg : 使用 ARG 作为合并命令
--ignore-ancestry : 合并时忽略原始信息
--username arg : 指定用户 ARG
--password arg : 指定密码 ARG
--no-auth-cache : 不要缓冲用户验证
--non-interactive : 不要交互提示
--config-dir arg : 从目录 ARG 读取用户配置文件
$ svn help
知道了子命令,但是不知道子命令的用法,还可以查询:
$ svn help add
开发人员常用命令
(1) 导入项目
$ cd ~/project
$ mkdir -p svntest/{trunk,branches,tags}
$ svn import svntest https://localhost/test/svntest --message "Start project"
...
$ rm -rf svntest
我们新建一个项目svntest,在该项目下新建三个子目录:trunk,开发主干;branches,开发分支;tags,开发阶段性标签。然后导入到版本库test下,然后把svntest拿掉。
(2) 导出项目
$ svn checkout https://localhost/test/svntest/trunk
修订版本号的指定方式是每个开发人员必须了解的,以下是几个参考例子,说明可参考svn推荐书。
$ svn diff --revision PREV:COMMITTED foo.c
# shows the last change committed to foo.c
$ svn log --revision HEAD
# shows log message for the latest repository commit
$ svn diff --revision HEAD
# compares your working file (with local changes) to the latest version
# in the repository
$ svn diff --revision BASE:HEAD foo.c
# compares your “pristine” foo.c (no local changes) with the
# latest version in the repository
$ svn log --revision BASE:HEAD
# shows all commit logs since you last updated
$ svn update --revision PREV foo.c
# rewinds the last change on foo.c
# (foo.c's working revision is decreased)
$ svn checkout --revision 3
# specified with revision number
$ svn checkout --revision {2002-02-17}
$ svn checkout --revision {15:30}
$ svn checkout --revision {15:30:00.200000}
$ svn checkout --revision {"2002-02-17 15:30"}
$ svn checkout --revision {"2002-02-17 15:30 +0230"}
$ svn checkout --revision {2002-02-17T15:30}
$ svn checkout --revision {2002-02-17T15:30Z}
$ svn checkout --revision {2002-02-17T15:30-04:00}
$ svn checkout --revision {20020217T1530}
$ svn checkout --revision {20020217T1530Z}
$ svn checkout --revision {20020217T1530-0500}
(3) 日常指令
$ svn update
$ svn add foo.file
$ svn add foo1.dir
$ svn add foo2.dir --non-recursive
$ svn delete README
$ svn copy foo bar
$ svn move foo1 bar1
$ svn status
$ svn status --verbose
$ svn status --verbose --show-updates
$ svn status stuff/fox.c
$ svn diff
$ svn diff > patchfile
$ svn revert README
$ svn revert
修改冲突发生时,会生成三个文件:.mine, .rOLDREV, .rNEWREV。比如:
$ ls -l
sandwich.txt
sandwich.txt.mine
sandwich.txt.r1
sandwich.txt.r2
解决修改冲突方式之一:修改冲突的文件sandwich.txt,然后运行命令:
$ svn resolved sandwich.txt
方式之二:用库里的新版本覆盖你的修改:
$ cp sandwich.txt.r2 sandwich.txt
$ svn resolved sandwich.txt
方式之三:撤销你的修改,这种方式不需要运行resolved子命令:
$ svn revert sandwich.txt
Reverted 'sandwich.txt'
$ ls sandwich.*
sandwich.txt
确保没问题后,就可以提交了。
$ svn commit --message "Correct some fatal problems"
$ svn commit --file logmsg
$ svn commit
(4) 检验版本历史
$ svn log
$ svn log --revision 5:19
$ svn log foo.c
$ svn log -r 8 -v
$ svn diff
$ svn diff --revision 3 rules.txt
$ svn diff --revision 2:3 rules.txt
$ svn diff --revision 4:5 http://svn.red-bean.com/repos/example/trunk/text/rules.txt
$ svn cat --revision 2 rules.txt
$ svn cat --revision 2 rules.txt > rules.txt.v2
$ svn list http://svn.collab.net/repos/svn
$ svn list --verbose http://svn.collab.net/repos/svn
$ svn checkout --revision 1729 # Checks out a new working copy at r1729
…
$ svn update --revision 1729 # Updates an existing working copy to r1729
…
(5) 其他有用的命令
svn cleanup
为失败的事务清场。
(6) 分支和合并
建立分支方法一:先checkout然后做拷贝,最后提交拷贝。
$ svn checkout http://svn.example.com/repos/calc bigwc
A bigwc/trunk/
A bigwc/trunk/Makefile
A bigwc/trunk/integer.c
A bigwc/trunk/button.c
A bigwc/branches/
Checked out revision 340.
$ cd bigwc
$ svn copy trunk branches/my-calc-branch
$ svn status
A + branches/my-calc-branch
$ svn commit -m "Creating a private branch of /calc/trunk."
Adding branches/my-calc-branch
Committed revision 341.
建立分支方法二:直接远程拷贝。
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
Committed revision 341.
建立分支后,你可以把分支checkout并继续你的开发。
$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch
假设你已经checkout了主干,现在想切换到某个分支开发,可做如下的操作:
$ cd calc
$ svn info | grep URL
URL: http://svn.example.com/repos/calc/trunk
$ svn switch http://svn.example.com/repos/calc/branches/my-calc-branch
U integer.c
U button.c
U Makefile
Updated to revision 341.
$ svn info | grep URL
URL: http://svn.example.com/repos/calc/branches/my-calc-branch
合并文件的命令参考:
$ svn diff -r 343:344 http://svn.example.com/repos/calc/trunk
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk
$ svn commit -m "integer.c: ported r344 (spelling fixes) from trunk."
$ svn merge -r 343:344 http://svn.example.com/repos/calc/trunk my-calc-branch
$ svn merge http://svn.example.com/repos/branch1@150 \
http://svn.example.com/repos/branch2@212 \
my-working-copy
$ svn merge -r 100:200 http://svn.example.com/repos/trunk my-working-copy
$ svn merge -r 100:200 http://svn.example.com/repos/trunk
$ svn merge --dry-run -r 343:344 http://svn.example.com/repos/calc/trunk
最后一条命令仅仅做合并测试,并不执行合并操作。
建立标签和建立分支没什么区别,不过是拷贝到不同的目录而已。
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/tags/release-1.0 \
-m "Tagging the 1.0 release of the 'calc' project."
$ ls
my-working-copy/
$ svn copy my-working-copy http://svn.example.com/repos/calc/tags/mytag
Committed revision 352.
后一种方式直接把本地的工作拷贝复制为标签。
此外,你还可以删除某个分支。
$ svn delete http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Removing obsolete branch of calc project."
管理人员常用命令
(7) 版本库管理
$ svnadmin help
...
$ svnadmin help create
...
$ svnadmin create --fs-type bdb /usr/local/repository/svn/test
$ chown -R svn.svn /usr/local/repository/svn/test
建立版本库,库类型为bdb(使用Berkeley DB做仓库),库名称为test。
svn版本库有两种存储方式:基于Berkeley DB(bdb)或者基于文件系统(fsfs),通过 –fs-type可指定存储方式。
(8) 查询版本库信息
$ svnlook help
...
$ svnlook help tree
...
$ svnlook tree /usr/local/repository/svn/test --show-ids
bash> svn help
用法:svn <subcommand> [options] [args]
Subversion 命令行客户端,版本 1.2.0。
请使用 “svn help <subcommand>” 显示子命令的辅助说明。
大多数的子命令可接受文件或目录参数,对目录进行递回存取。
如无指定参数给命令,默认将会自当前的目录 (包含) 进
行递归存取。
可用的子命令:(括号内是子命令的简写)
add
blame (praise, annotate, ann)
cat
checkout (co) //从源码库取出一个工作版本的拷贝
cleanup //
commit (ci) //提交当前工作拷贝的更改。这个地方是有可能出现代码冲突的。
copy (cp) //做一个工作拷贝的拷贝。
delete (del, remove, rm) //删除本地或者svn server response上的文件或者目录。
diff (di) //比较某个文件与库中的对应文件的不同,类似于系统的diff命令。参数:文件名。
export //导出一个无版本控制的目录树拷贝。一般用于导出发行,或者投入运行的版本。
help (?, h)
import //将本地当前目录下的文件导入到svn response 中。
info //当前目录下工作拷贝中某文件(文件夹)的信息,如URL,版本,修改日期等。参数:要看的文件(文件夹)
list (ls) //列出当前工作拷贝下的文件 ,相当于系统的ls命令,不过只能在工作拷贝目录下使用。
lock
log
merge //将两个来源之间的差异应用至工作拷贝路径。
mkdir //在本地或者svn respon上新建一个文件夹.参数:URL或者路径
move (mv, rename, ren)
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
resolved
revert
status (stat, st) //svn工作拷贝当前状态,与svn server上的源码比较的结果。
switch (sw)
unlock
update (up) //将svn server端文件同步到本地
Subversion 是个版本控制系统的工具。
欲取得详细资料,请参考 http://subversion.tigris.org/
>svn co
checkout (co): Check out a working copy from a repository.
usage: checkout URL[@REV]... [PATH]
If specified, REV determines in which revision the URL is first
looked up.
If PATH is omitted, the basename of the URL will be used as
the destination. If multiple URLs are given each will be checked
out into a sub-directory of PATH, with the name of the sub-directory
being the basename of the URL.
有效选项:
-r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 )
修订版参数可以是:
数字 修订版号
"{" 日期 "}" 在指定时间以后的修订版date
"HEAD" 最近的档案库
"BASE" 基线,基于修订版的工作条目
"COMMITTED" 最后提交或基线之前
"PREV" 修订版提交之前
-q [--quiet] : 打印尽可能少
-N [--non-recursive] : 只在单个目录操作
--username arg : 指定用户 ARG
--password arg : 指定密码 ARG
--no-auth-cache : 不要缓冲用户验证
--non-interactive : 不要交互提示
--config-dir arg : 从目录 ARG 读取用户配置文件
--ignore-externals : ignore externals definitions
sh> svn add
add: 把文件和目录放入版本控制中,
通过调度加到档案库。它们会在下一次提交时加入。
用法:add 路径...
有效选项:
--targets arg : 传递文件 ARG 内容为附件参数
-N [--non-recursive] : 只在单个目录操作
-q [--quiet] : 打印尽可能少
--config-dir arg : 从目录 ARG 读取用户配置文件
--force : 强制操作运行
--auto-props : 使自动属性有效
--no-auto-props : 使自动属性无效
eg.(下面的命令必须在工作拷贝目录下运行)
sh> svn add test.c //加一个文件
sh> svn add test //加一个目录,目录下有任意结构的文件夹
sh> svn import http://localhost/svn/hehehehehhe -m=sdfsdf //可在任何目录下,将当前文件夹下的所以文件递归导入到svn response 的hehehhhe目录下。
sh>svn export
export: 产生一个无版本控制的目录树拷贝。
用法:1、export [-r REV] URL[@PEGREV] [PATH]
2、export [-r REV] PATH1[@PEGREV] [PATH2]
1、从 URL 指定的档案库,导出一个干净的目录树到 PATH。如果有指定
REV 的话,内容即为该修订版的,否则就是 HEAD 修订版。如果 PATH
被省略的话,地址(URL)的最后部份会被用来当成本地的目录名称。
2、在工作拷贝中,从指定的 PATH1 导出一个干净的目录树到 PATH2。如果
有指定 REV 的话,会从指定的修订版导出,否则从 WORKING 导出。如果
PATH2 被省略的话,PATH1 的最后部份会被用来当成本地的目录名称。
如果没有指定 REV 的话,所有的本地修改都还会保持著,但是未纳入
版本控制的文件不会被复制。
如果指定了 PEGREV ,将从指定的修订版本开始查找。
有效选项:
-r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 )
修订版参数可以是:
数字 修订版号
"{" 日期 "}" 在指定时间以后的修订版date
"HEAD" 最近的档案库
"BASE" 基线,基于修订版的工作条目
"COMMITTED" 最后提交或基线之前
"PREV" 修订版提交之前
-q [--quiet] : 打印尽可能少
-N [--non-recursive] : 只在单个目录操作
--force : 强制操作运行
--username arg : 指定用户 ARG
--password arg : 指定密码 ARG
--no-auth-cache : 不要缓冲用户验证
--non-interactive : 不要交互提示
--config-dir arg : 从目录 ARG 读取用户配置文件
--native-eol arg : 使用一个与标准不同的 EOL 标记
文件的系统标记是一个本地的 svn:eol-style 属性。
ARG 可能是一下之一 'LF','CR','CRLF'
--ignore-externals : ignore externals definitions
eg.
sh> svn export http://localhost/svn/hehehehehhhe
sh> svn merge
merge: 将两个来源之间的差异应用至工作拷贝路径。
用法:1、merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
2、merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
3、merge -r N:M SOURCE[@REV] [WCPATH]
1、第一种形式中,来源 URL 各被指定到修订版 N 与 M。这两个就是作为
比较的来源。如果没有指定修订版的话,默认为 HEAD。
2、在第二种形式中,对应到两个来源的工作拷贝路径的 URL 定义出用以
进行比较的来源。这里必须指定修订版。
3、第三种形式中,SOURCE 可为 URL 或工作拷贝项目,后者会使用对应的
地址(URL)。在修订版 REV 的 地址(URL) 会以它存在于修订版 N 与 M 的路径来作
比较。如果未指定 REV,就会假设为 HEAD。
WCPATH 是接受改变的工作拷贝路径。如果省略 WCPATH 的话,默认值为
'.',除非来源的主要名字符合 '.' 里的某个文件;在这种情况下,文件
差异将会直接应用至该文件去。
有效选项:
-r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 )
修订版参数可以是:
数字 修订版号
"{" 日期 "}" 在指定时间以后的修订版date
"HEAD" 最近的档案库
"BASE" 基线,基于修订版的工作条目
"COMMITTED" 最后提交或基线之前
"PREV" 修订版提交之前
-N [--non-recursive] : 只在单个目录操作
-q [--quiet] : 打印尽可能少
--force : 强制操作运行
--dry-run : 尝试操作但不修改
--diff3-cmd arg : 使用 ARG 作为合并命令
--ignore-ancestry : 合并时忽略原始信息
--username arg : 指定用户 ARG
--password arg : 指定密码 ARG
--no-auth-cache : 不要缓冲用户验证
--non-interactive : 不要交互提示
--config-dir arg : 从目录 ARG 读取用户配置文件
发表评论
-
jqplot参数描述
2012-10-17 10:20 2751jqPlot 图形报表插件简介及参数详解(jquery) ... -
Apache 代理(Proxy)
2012-08-16 17:23 1733代理分为:正向代理(Foward Proxy)和反向代理(Re ... -
Apache 2.2-SSL操作大全
2012-08-11 20:06 1596制作CSR申请文件 安装证书文件 客户端证书认证 强制H ... -
HTTP返回码中301与302的区别
2012-08-11 17:04 9359一.官方说法 301,302 ... -
handlerbar
2012-08-09 17:42 1417安装和使用 Handlebars的 ... -
win7ppt打开两个的问题
2012-08-08 10:09 19461、引言 Excel 是我们最常用的办公软件之一,在日常工作中 ... -
xsi:schemaLocation
2012-08-05 10:57 1641在实例中引用模式文档 XML Schema提供了两个在实例 ... -
sublime text 快捷键
2012-07-28 10:40 1180快捷键 XP版 Ctrl+L 选择整行 ... -
webx常用标签收集
2012-07-10 09:59 1244#set($spmHome="/static&quo ... -
java调用domino
2012-06-20 17:52 1291java访问操作lotus domino数据库 有几种方式: ... -
Lotus Domino/Notes Toolkits 综述(注:转)
2012-06-20 17:04 1624http://wind-bell.iteye.com/blog ... -
notes数据库api
2012-06-20 16:42 1879用Java远程操作Domino服务器的例子 1.服务器必 ... -
cron
2012-06-09 09:15 2692上一文中提到 Cron触发 ... -
quartz与mysql连接 持久化
2012-06-07 10:10 4520Mysql相关软件: MySQL-server-communi ... -
quartz
2012-06-06 19:14 1517http://blog.csdn.net/bibitoo712 ... -
史上最简! Subvision SVN (svn的服务器端) 安装教程
2012-04-19 10:02 1313由于 indian 写的Subvision安装教程实在是太好了 ... -
反编译还原总结
2011-12-11 15:06 2037java class 利用jad 反编译之后,偶尔回碰到一 ... -
asm解读
2011-09-06 22:45 1189目的: 程序分析:用于分析程序,动态生成proxy等。 程序生 ... -
maven-----概念
2011-06-28 14:32 1578常用maven命令 mvn clean install -Ds ... -
svn编程
2011-06-02 20:24 1691API文档: http://svnkit.com/jav ...
相关推荐
svn 在 Linux 下的使用(svn 命令) svn 是一个版本控制系统,允许多人合作开发项目,追踪文件的变化历史记录,避免文件冲突和丢失。下面介绍 svn 在 Linux 下的使用和常用命令。 1. 将文件 checkout 到本地目录 ...
"svn命令大全" SVN(Subversion)是一种版本控制系统,主要用于管理软件开发过程中的代码修改和更新。下面是 Linux 下 SVN 命令大全介绍: 一、checkout 命令 checkout 命令用于将文件从服务器 checkout 到本地...
**SVN 命令操作手册大全** **一、Svnadmin 概述** Svnadmin 是 Subversion(简称 SVN)中的一个管理工具,用于创建、维护和操作 SVN 仓库。它提供了对仓库的底层控制,允许管理员执行如创建、备份、恢复等高级操作...
下面将详细解析从给定文件中提取的关键SVN命令及其功能,这将帮助你在Linux系统中更有效地管理和操作SVN仓库。 ### 1. 检出 (Checkout) `svn checkout path path` 命令用于从SVN仓库检出项目到本地目录。例如,`...
### Ubuntu SVN 命令大全解析 #### 一、Checkout (检出) **命令格式**: ``` svn checkout [URL] [本地路径] ``` **示例**: ``` svn checkout svn://192.168.1.1/pro/domain ``` **功能说明**: - `svn ...
通过svn命令,用户可以实现对代码库的多种操作,包括检出、添加、提交、更新、查看状态、删除、查看日志、比较差异、合并版本等。以下是对这些常见svn命令的详细解释: 1. **检出(Checkout)**: `svn checkout` 或 `...
本文将详细解析Linux环境下常用的SVN命令及其用法。 1. **Checkout**: `svn checkout` 或 `svn co` 命令用于从远程仓库克隆项目到本地工作目录。例如: ``` svn checkout svn://192.168.1.1/pro/domain ``` 2...
### SVN命令再封装详解 #### 一、引言 在软件开发过程中,版本控制系统是必不可少的工具之一。Subversion(SVN)作为一款经典的集中式版本控制系统,在许多项目中仍被广泛使用。然而,对于一些复杂的操作场景,...
以下是对标题和描述中涉及的svn命令的详细解释: 1. **Checkout(检出)** `svn checkout` 或 `svn co` 用于从远程仓库下载项目到本地工作目录,例如: ``` svn checkout svn://192.168.1.1/pro/domain ``` 2....
### SVN命令详解 1. **`svn checkout (简称 svn co)`**:用于从服务器上检出一份工作副本到本地。 2. **`svn update (简称 svn up)`**:更新本地工作副本,获取服务器上的最新更改。 3. **`svn commit (简称 svn ci...
### Linux下SVN命令使用大全 #### 一、概述 Subversion (SVN) 是一款开源版本控制系统,广泛应用于软件开发和其他需要版本控制管理的领域。在Linux环境下使用SVN,能够有效地帮助开发者管理和协作代码。本文档将...
在了解了打基线的基本概念之后,接下来详细介绍一些常用的SVN命令,这些命令可以帮助我们在SVN中有效地进行打基线操作。 ##### 1. 创建标签(tag) 创建标签是一种非常简单的方式,可以用来记录项目的一个快照。...
Linux 下的 SVN 命令操作大全借鉴 本文档对 Linux 下的 SVN 命令操作进行了详细的介绍,从基本的 checkout 到 commits、更新、锁定、解锁、状态查看、删除、日志查看、信息查看、差异比较、合并等多个方面对 SVN ...
### SVN命令大全解析 #### 一、概述 Subversion(简称SVN)是一种开源的版本控制系统,用于管理软件项目的源代码。它可以帮助开发者们更好地跟踪和管理代码的变化历史,支持团队协作开发。本文将详细介绍SVN中的...
Linux 下 SVN 命令大全 Linux 下 SVN 命令大全是 Subversion 版本控制系统的命令行接口,提供了许多功能强大且灵活的命令来管理项目代码的版本控制。下面是 Linux 下 SVN 命令大全的详细介绍。 配置 SVN 在 Linux...