svn使用
svn用于版本管理,跟我们平时开发息息相关。
svn命令对比与普通命令稍微复杂。但是其有强大的help可以帮助我们。
svn help
对于某些功能,仅仅依靠svn help无法完全得到结果。可以通过
svn help your_command
来进一步查询。
现在有一个问题:1713-目前版本提交了一个重要文件(忘记文件名了),最近我肯定是修改了这个文件,我想看看我修改了什么。
大体思路:
1. 首先根据log查看到底修改了那些文件
2. 找到具体文件使用svn diff来查看修改内容。
>>>svn help log
Valid options:
-r [--revision] arg : ARG (some commands also take ARG1:ARG2 range)
A revision argument can be one of:
NUMBER revision number
'{' DATE '}' revision at start of the date
'HEAD' latest in repository
'BASE' base rev of item's working copy
'COMMITTED' last commit at or before BASE
'PREV' revision just before COMMITTED
-q [--quiet] : print as little as possible
-v [--verbose] : print extra information
HEAD:版本库中的最新版本。
COMMITED:文件最后提交生成的版本号。
PREV:文件倒数第二次提交生成的版本号。
BASE:目录签出或者签入生成的版本号。
>>>svn log -r 1713:head -v
根据log列表找到自己想要的文件: /zzzadmin/src/ApiBundle/Controller/CenterController.php
这个路径是svn路径,非系统文件路径
>>> svn diff -r 1713:head src/ApiBundle/Controller/CenterController.php # 查看1713和库中最新版本的区别
>>> svn diff -r 1713 src/ApiBundle/Controller/CenterController.php # 查看当前文件和1713区别
这里只是举个例子,大部分常用操作都可以通过svn help的帮助自己一点点来处理。
下面再讲一下svn properset
Note: svn recognizes the following special versioned properties
but will store any arbitrary properties set:
svn:ignore - A newline separated list of file patterns to ignore.
svn:keywords - Keywords to be expanded. Valid keywords are:
URL, HeadURL - The URL for the head version of the object.
Author, LastChangedBy - The last person to modify the file.
Date, LastChangedDate - The date/time the object was last modified.
Rev, Revision, - The last revision the object changed.
LastChangedRevision
Id - A compressed summary of the previous
4 keywords.
svn:executable - If present, make the file executable.
svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.
svn:mime-type - The mimetype of the file. Used to determine
whether to merge the file, and how to serve it from Apache.
A mimetype beginning with 'text/' (or an absent mimetype) is
treated as text. Anything else is treated as binary.
svn:externals - A newline separated list of module specifiers,
each of which consists of a relative directory path, optional
revision flags, and an URL. For example
foo http://example.com/repos/zig
foo/bar -r 1234 http://example.com/repos/zag
svn:needs-lock - If present, indicates that the file should be locked
before it is modified. Makes the working copy file read-only
when it is not locked.
The svn:keywords, svn:executable, svn:eol-style, svn:mime-type and
svn:needs-lock properties cannot be set on a directory. A non-recursive
attempt will fail, and a recursive attempt will set the property
only on the file children of the directory.
通过 svn help properset 可以看到properset可以修改某些属性。
以设置某个文件夹不纳入版本管理为例:
$ mkdir your_file
$ svn propset svn:ignore your_file . (一定要加.用于代表where to apply the setting.)
$ svn commit -m "ignore your_file"
如何解决 A在svn中add了一个文件;B未更新也Add了一个文件,当B提交时报错:“Failed to add file path/to/file: object of the same name is already scheduled for addition”
Q: Failed to add file /path/to/directory/with/suspected/duplicate: object of the same name is already scheduled for addition A: cd /path/to/directory/with/suspected/duplicate svn revert . svn cleanup svn update

浙公网安备 33010602011771号