`

svn 命令行 faq(转)

阅读更多

svn 命令行 faq

作者 willem http://willem.bokeland.com/blog/794/4431/2007/06/10/202036

使用Subversion也一年多了,今天整理了一些有用的小窍门,和大家分享一下。

在Windows下面大家经常用的是到的客户端是tortoisesSVN ,这个图形工具很强大,但是也有一些缺陷。例如使用tortoiseSVN不能进行svn cp, svn mv以及批量进行文件属性的修改等的操作,而这些通过Subversion命令行工具可以很轻松的实现。

还有tortoiseSVN为了能够实时地在资源管理器上显示当前被管理文件地状态信息,会使用TSVNCache.exe在后台不断扫描文件系统,这样会占用大量的系统资源,这里有相关地配置说明。使用 Subversion命令行工具则不存在这样地问题,你可以通过 svn st 命令及时获取文件的状态信息。
 

在这里主要讲的几个小窍门都是和 Subversion的命令行工具相关的,在下面得示例中我使用得都是简写命令,大家可以通过查找 svn的帮助信息获取到详细的命令信息. 

1。 如何查找svn 的帮助信息

你可以通过查看 svn book 或者使用 svn help命令查找svn所支持的指令信息

如果要查找更为详细的命令可以通过  svn help 指令名  如 svn help ci ,来查看svn提交指令的参数信息。

 

2。如果使用 svn rm 删除了不该删除的文件,如何进行恢复?

如果这时你没有使用过svn ci提交代码,那你只需要使用svn revert 文件名就可以将你误删除的文件恢复

如果你已经把删除操作提交到代码库了,别担心 svn代码库并没有彻底的将这些文件删除了(svn就像一个时空保管,保留了你提交的所有文件),你可以通过 svn cp -r PREV 源文件名  目的文件名 恢复

 

3。添加了不该添加的文件, 如何删除这些文件?

如果在提交代码前,你可以使用 svn revert 文件名 将你的操作撤销。

如果在提交代码之后发现了这个问题,你就得使用 svn rm来进行删除操作了。

 

4。如果我得代码库地址发生改变了,如何更新当前工作空间?

 这时你不需要从新的代码库 check out, 只需要使用 svn sw  --relocate FROM TO [PATH...] 就可以更新你的当前工作空间的代码库地址

 

5。在提交代码时如何查看当前工作空间的文件信息。

  使用 svn st 命令, 你可以看到当前工作空间中修改的文件 'M'表示,没有加入代码库的文件 '?', 有冲突的文件 'C' 表示,  新添加的文件 'A', 删除的文件'D' ...。

   在提交代码前最好执行一下svn st 检查一下,  如果发现'C',你需要修改你的代码,然后使用 svn resolved 文件名来解决这个冲突,否则你是不能成功提交的。 

   同时也要留心一下'?'的文件,因为你有可能忘记执行 svn add 命令把其中某个文件添加到代码库中了。 

 

6. 如果已经提交代码了,如何回滚到以前的版本上。

可以使用svn cat -r PREV filename > filename 恢复到上一个版本,注意这个时候文件的状态是M,也就是说你可以提交你的修改。

如果你只是想co 文件的比较老的版本,并不想在上面做什么修改。 你可以使用  svn up -r NUMBER ,切换当前的工作路径的文件版本。这时,你是不能将这些工作路径内的修改提交到代码库中。

7。什么是 svn property?

  由于svn来说文件有很多属性,因为svn客户端是跨平台的,对于代码库的文件,需要根据这些属性以及客户端所在平台来处理工作空间文件的属性。例如我们 常见的Windows文件的回车换行和Unix文件的换行是不相同的。我们可以通过指定svn文件中的 svn:eol-style 属性来实现, 具体命令如下 svn propset svn:eol-style native。

如果你想指定一个shell脚本为可执行文件, 你可以通过命令使用 svn propset svn:executable 文件名来实现。 

 

8。 如何设置svn自动属性 

前面提到的文件属性要设置起来通过命令行的方式很麻烦,我们可以通过修改 Subversion的配置文件让Subsersion自动实行上面的操作。 具体做法如下:

修改 home/Subversion/config 文件。  

将 enable-auto-props = yes
然后添加如下的内容

[auto-props]
*.java = svn:eol-style=native;svn:keywords=Rev Date
*.xml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
*.xsl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
*.xsd = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
*.xjb = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
*.wsdl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
*.properties = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Rev Date
.checkstyle = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
.pmd = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
.ruleset = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
*.c = svn:eol-style=native;svn:keywords=Rev Date
*.cpp = svn:eol-style=native;svn:keywords=Rev Date
*.h = svn:eol-style=native;svn:keywords=Rev Date
*.dsp = svn:eol-style=CRLF
*.dsw = svn:eol-style=CRLF
*.sh = svn:eol-style=native;svn:executable
*.bat = svn:eol-style=native
*.pl = svn:eol-style=native
*.py = svn:eol-style=native
*.cmd = svn:eol-style=native
*.txt = svn:eol-style=native;svn:mime-type=text/plain
*.cat = svn:eol-style=native;svn:mime-type=text/plain
*.htm* = svn:eol-style=native;svn:mime-type=text/html;svn:keywords=Rev Date
ChangeLog = svn:eol-style=native;svn:mime-type=text/plain
README* = svn:eol-style=native;svn:mime-type=text/plain
LICENSE* = svn:eol-style=native;svn:mime-type=text/plain
NOTICE* = svn:eol-style=native;svn:mime-type=text/plain
TODO* = svn:eol-style=native;svn:mime-type=text/plain
KEYS* = svn:eol-style=native;svn:mime-type=text/plain
INSTALL* = svn:eol-style=native;svn:mime-type=text/plain
WHATSNEW* = svn:eol-style=native;svn:mime-type=text/plain
NEWS* = svn:eol-style=native;svn:mime-type=text/plain
COPYING = svn:eol-style=native;svn:mime-type=text/plain
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
*.gif = svn:mime-type=image/gif
Makefile = svn:eol-style=native
*.css = svn:eol-style=native
*.js = svn:eol-style=native
*.jsx = svn:eol-style=native
*.cxf = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Rev Date
分享到:
评论

相关推荐

    svn使用FAQ

    除了命令行工具外,还有许多图形用户界面客户端,如TortoiseSVN、SmartSVN等,它们提供更直观的操作界面,简化了对SVN的日常使用。 7. **SVN仓库**: SVN仓库是集中式存储代码的地方,可以托管在本地服务器或远程...

    CVS 2 SVN 指导

    cvs2svn的FAQ涵盖了从单个仓库的迁移到多项目仓库的转换,再到EOL(End-of-Line)翻译问题的处理,以及获取帮助和报告错误的途径。 #### 九、CVSNT仓库的特别注意 尽管一些用户报告了将CVSNT仓库迁移到SVN的成功...

    svn中文帮助文档

    2. **SVN命令行工具**: - **svn checkout**:从版本库检出一份工作副本。 - **svn add**:将新文件或目录添加到版本控制。 - **svn commit**:提交更改到版本库。 - **svn update**:将工作副本与版本库同步。 ...

    SVN安装版+解压版.zip

    5. **命令行工具与图形界面**:虽然SVN提供了一套命令行工具,但许多用户更倾向于使用图形界面客户端,如TortoiseSVN,它为Windows用户提供直观的右键菜单操作。 对于中文用户,"SVN中文版"意味着在安装和使用过程...

    SVN_管理员使用手册

    《SVN管理员使用手册》是针对Subversion(简称SVN)管理系统的一份详细指南,旨在帮助管理员有效地管理和配置SVN服务器。本手册适用于那些需要控制版本库访问权限、管理用户账户以及解决常见问题的SVN管理员。 1. ...

    SVN 使用教程,手把手教你使用SVN

    这可以通过命令行工具 `svnadmin` 或 TortoiseSVN 的 GUI 工具来完成。例如,使用 `svnadmin create E:\svn\repository` 命令可在 E 盘创建名为 repository 的 SVN 存储库。若使用 GUI,只需在指定目录下右键选择 ...

    svn for redhat 安装手册

    - 默认情况下,系统可能设置为图形界面模式(runlevel 5),但在某些场景下,如服务器环境,我们通常希望使用命令行模式(runlevel 3)。可以通过编辑`/etc/inittab`文件来更改这一设置。 ```shell # 查看当前的...

    SVN管理员手册

    在Subversion(简称SVN)中,管理员手册主要涵盖了对SVN服务器的管理和配置,包括用户管理、权限控制以及问题解答。以下是手册中的关键知识点的详细说明: 1. **配置SubVersion登陆用户名和密码** SVN使用`...

    SVN的安装程序和相关的使用手册和资料

    除了这些核心资源,这个压缩包可能还包含其他有用的资料,如FAQ、最佳实践、示例项目等,帮助你更深入地理解和应用SVN。学习SVN并将其整合到你的开发流程中,能够提高团队的协作效率,确保代码的稳定性和一致性。 ...

    SVN操作手册中文版网页格式

    目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性,svn客户端和linux下命令行。 目录 1. 简介 1.1. 什么是 TortoiseSVN? 1.2. TortoiseSVN 的历史 1.3. ...

    svn-1.4.3-setup.exe.7z

    为了创建 passwd 文件,再次打开命令行提示符(DOS 窗口),进入 apache2 目录(通常是 c:\program files\apache group\apache2),通过输入下面的命令创建文件 bin\htpasswd -c passwd <username> 它将会创建名为 ...

    TortoiseSVN和TortoiseMerge的中文帮助文档(chm格式)

    常见问题(FAQ) B. 如何实现 … B.1. 一次移动或复制多个文件 B.2. 强制用户写日志 B.2.1. 服务器端的钩子脚本(Hook-script) B.2.2. 工程(Project)属性 B.3. 从版本库里更新选定的文件到本地 B.4. Roll back (Undo) ...

    Windows下架设subversion服务器.txt

    通过命令行输入`svnserve --daemon -d`来启动守护进程模式的SVN服务,监听默认端口3690。 #### 配置认证与授权 - **编辑配置文件**:打开`E:\svn\repos1\conf\svnserve.conf`,取消注释并设置`password-db=passwd`...

    Subclipse 中文使用手册.doc

    无论你是初学者还是SVN老手,Subclipse都能简化你的版本控制流程,与命令行工具相比,它提供了更为直观和集成的体验。通过学习和使用Subclipse,你会发现它是一个强大的SVN管理工具,是开发者不可或缺的助手。

    TortoiseSVN-1.14.3中文版(TortoiseSVN-1.14.3-zh_CN.pdf,针对Windows 平台)

    命令行交叉索引,方便熟悉命令行操作的用户;实现细节,揭示了TortoiseSVN内部的工作原理;语言包和拼写检查器信息,让软件适应不同地区的需求;最后是术语表和索引,便于查找特定信息。 总之,《TortoiseSVN-...

    TortoiseSVN教程.pdf

    - **Subversion命令行例子**:`svn add * --force` (强制递归增加所有新的目录及文件到版本控制)。 - **删除**:从版本控制系统中移除文件或文件夹。 - **TortoiseSVN操作**:右键点击待删除的文件或文件夹,...

    java工程源代码实例

    6. **版本控制文件**(如:.gitignore, .svn):如果项目使用了Git或SVN等版本控制系统,这些文件将帮助管理代码的历史版本和团队协作。 7. **测试代码**(src/test目录):在Java工程中,通常会有专门的目录存放...

Global site tag (gtag.js) - Google Analytics