主题
Svn使用手册
命令
Update
shell
--depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity')
--set-depth ARG : set new working copy depth to ARG ('exclude', 'empty', 'files', 'immediates', or 'infinity')- depth:仅针对当前操作有效。
- set-depth:永久修改深度。
set-depth优先级更高:比如目录Package\ZGGG的永久深度为 empty,执行 svn up --depth files Package\ZGGG 依然不会更新内容。
深度参数:
- empty:空目录。只更新一个空目录,这有助于你精确控制想下载哪些目录或文件。如果目录深度为空,执行
svn up your_empty_dir将不会更新任何内容。要么重新设定深度,要么指定需要更新的文件。 - files:仅更新直接子文件。
- immediates:更新直接子目录和直接子文件,需注意子目录都是空目录(即depth为empty)。
- infinity:递归下载所有子目录及其文件。
- exclude:排除
特别注意:
- 每次设置永久深度时,本地可能会删除已存在的文件。比如每次执行
--set-depth immediates时,子目录内的文件都会被清空。即每次设置目录的深度时,会按深度规则重新整理这个目录。 - 通配符是匹配本地已存在的文件进行更新!
查看深度:svn info your_dir --show-item depth
示例:
- 本地仓库没有EDDF目录,从远端更新下来。
shell
# 设置Package/EDDF目录的深度为infinity,表示每次更新都自动更新所有子目录及其文件
svn update --set-depth infinity Package/EDDF/- 本地仓库没有此文件和文件所在的目录,只想更新文件。
shell
# 先更新文件所在的空目录
svn update --set-depth empty Package/ZUJZ/
# 再更新文件
svn update Package/ZUJZ/Manifest.jsonUbuntu编译安装pysvn
注意
不要直接 pip install pysvn
- 安装 subversion 相关库,主要是编译需要subversion的头文件。安装完之后应该能在
/usr/include/subversion-1看到 svn 的头文件。
bash
apt install -y libsvn-dev libapr1-dev libaprutil1-dev- 下载安装PySvn源码(注意下载
Source)
bash
wget https://sourceforge.net/projects/pysvn/files/pysvn/pysvn-1.9.22.tar.gz- 解压到本地
bash
tar -xvzf pysvn-1.9.22.tar.gz- 进入到
pysvn-1.9.22目录下进行编译,也可跳过直接到下一步安装。
bash
cd pysvn-1.9.22
python3 setup.py build- 安装到本地python库
bash
python3 setup.py install如果想安装在虚拟环境,最简单的方式是先激活虚拟环境,然后进入到 pysvn-1.9.22 目录下直接安装即可。例如:
bash
pipenv shell
cd /toyourpath/pysvn-1.9.22
python setup.py install报错解决方案
- Error: Cannot find PyCXX include CXX/Version.hxx - use --pycxx-dir 和 Error: Cannot find SVN include svn_client.h - use --svn-inc-dir
python
# 修改setup.py文件
os.system( sys.executable + ' setup.py configure ')
# 把上面的代码更换为
os.system( sys.executable + ' setup.py configure --pycxx-dir=/root/pysvn-1.9.22/Import/pycxx-7.1.9 --svn-inc-dir=/usr/include/subversion-1' )