SVN - svnadmin

2023-12-09 03:58
文章标签 svn svnadmin

本文主要是介绍SVN - svnadmin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


svnadmin是一个用来监控和修改Subversion版本库的管理工具

因为svnadmin直接访问版本库(因此只可以在存放版本库的机器上使用),它通过路径访问版本库,而不是URL。

svnadmin Switches
--bdb-log-keep

(Berkeley DB特定)关闭数据库日志自动日志删除功能。

--bdb-txn-nosync

(Berkeley DB特定)当提交数据库事务时关闭fsync。

--bypass-hooks

绕过版本库钩子系统。

--clean-logs

删除不使用的Berkeley DB日志。

--force-uuid

缺省情况下,当版本库加载已经包含修订版本的数据时

svnadmin会忽略流中的UUID,这个选项会导致版本库的UUID设置为流的UUID。
--ignore-uuid

缺省情况下,当加载空版本库时,

svnadmin会使用来自流中的UUID,这个选项会导致忽略UUID。
--incremental

导出一个修订版本针对前一个修订版本的区别,而不是通常的完全结果。

--parent-dir DIR

当加载一个转储文件时,根路径为DIR而不是/。

--revision (-r) ARG

指定一个操作的修订版本。

--quiet

不显示通常的过程—只显示错误。

--use-post-commit-hook

当导入使用一个转储文件时,在每次新的修订版本产生时运行版本库post-commit钩子。

--use-pre-commit-hook

当加载一个转储文件时,每次新加修订版本之前运行版本库的pre-commit钩子。如果钩子失败,终止提交并中断加载进程。

svnadmin Subcommands

名称

svnadmin create — 创建一个新的空的版本库。

概要

svnadmin create REPOS_PATH

描述

在提供的路径上创建一个新的空的版本库,如果提供的目录不存在,它会为你创建。

[ 51]对于Subversion 1.2,svnadmin缺省使用fsfs文件系统后端创建版本库。

选项

--bdb-txn-nosync
--bdb-log-keep
--config-dir DIR
--fs-type TYPE

例子

创建一个版本库就是这样简单:

$ svnadmin create /usr/local/svn/repos

在Subversion 1.0,一定会创建一个Berkeley DB版本库,在Subversion 1.1,Berkeley DB版本库是缺省类型,但是一个FSFS版本库也是可以创建,使用--fs-type选项:

$ svnadmin create /usr/local/svn/repos --fs-type fsfs


[ 51] 记住svnadmin只工作在本地 路径,而不是 URL

名称

svnadmin deltify — 修订版本范围的路径的增量变化。

概要

svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH

描述

svnadmin deltify因为历史原因之存在于1.0.x,这个命令已经废弃,不再需要。

它开始于当Subversion提供了管理员控制版本库压缩策略的能力,结果是复杂工作得到了

非常小的收益,所以这个“ 特性”被废弃了。

选项

--revision (-r)
--quiet

名称

svnadmin dump — 将文件系统的内容转储到标准输出。

概要

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]

描述

使用“

dumpfile”可移植格式将文件系统的内容转储到标准输出,将反馈发送到标准错误,导出的修订版本从LOWER到UPPER。如果没有提供修订版本,会导出所有的修订版本树,如果只提供LOWER,导出一个修订版本树,通常的用法见 “版本库的移植”一节。

缺 省情况下,Subversion的转储流包含了一个包括所有文件和目录的单独修订版本(请求的修订版本范围的第一个),后面是其它的只包含本修订所修改的 文件和目录的修订版本(请求范围的其它版本)。对于修改的文件,转储文件包括所有的内容和属性,对于目录,包括所有的属性。

有一对有用的选项可以改变转储文件产生的方式,第一个是--incremental,使得第一个修订版本只显示其修改的文件和目录,而不是整个目录树,就像转储文件中其它的修订版本。这对产生一个准备导入到已经有数据的版本库时非常有用。

第二个有用的选项是--deltas,这个选项导致

svnadmin dump不会保留修改文件的所有内容,而只是记录修改的部分。这样减少(有些情况下是非常大的)了svnadmin dump产生的转储文件的大小。然而,也有缺点—增量转储文件需要更多的CPU来创建,也不可以用svndumpfilter操作,也不如非增量文件容易被如gzip和bzip2等第三方工具压缩。

选项

--revision (-r)
--incremental
--quiet
--deltas

例子

转储整个版本库:

$ svnadmin dump /usr/local/svn/repos
SVN-fs-dump-format-version: 1
Revision-number: 0
* Dumped revision 0.
Prop-content-length: 56
Content-length: 56
…

从版本库增量转储一个单独的事务:

$ svnadmin dump /usr/local/svn/repos -r 21 --incremental 
* Dumped revision 21.
SVN-fs-dump-format-version: 1
Revision-number: 21
Prop-content-length: 101
Content-length: 101
…

名称

svnadmin help

概要

svnadmin help [SUBCOMMAND...]

描述

当你困于一个没有网络连接和本书的沙漠岛屿时,这个子命令非常有用。

别名

?, h


名称

svnadmin hotcopy — 制作一个版本库的热备份。

概要

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

描述

这个子命令会制作一个版本库的完全“

”拷贝,包括所有的钩子,配置文件,当然还有数据库文件。如果你传递--clean-logs选项,svnadmin会执行热拷贝操作,然后删除不用的Berkeley DB日志文件。你可以在任何时候运行这个命令得到一个版本库的安全拷贝,不管其它进程是否使用这个版本库。

选项

--clean-logs

名称

svnadmin list-dblogs — 询问Berkeley DB在给定的Subversion版本库有哪些日志文件存在(只有在版本库使用bdb作为后端时使用)。

概要

svnadmin list-dblogs REPOS_PATH

描述

Berkeley DB创建了记录所有版本库修改的日志,允许我们在面对大灾难时恢复。除非你开启了DB_LOG_AUTOREMOVE,否则日志文件会累积,尽管大多数是不再使用可以从磁盘删除得到空间。详情见

“管理磁盘空间”一节。

名称

svnadmin list-unused-dblogs — 询问Berkeley DB哪些日志文件可以安全的删除(只有在版本库使用bdb作为后端时使用)。

概要

svnadmin list-unused-dblogs REPOS_PATH

描述

Berkeley DB创建了记录所有版本库修改的日志,允许我们在面对大灾难时恢复。除非你开启了DB_LOG_AUTOREMOVE,否则日志文件会累积,尽管大多数是不再使用,可以从磁盘删除得到空间。详情见

“管理磁盘空间”一节。

例子

删除所有不用的日志文件:

$ svnadmin list-unused-dblogs /path/to/repos
/path/to/repos/log.0000000031
/path/to/repos/log.0000000032
/path/to/repos/log.0000000033$ svnadmin list-unused-dblogs /path/to/repos | xargs rm
## disk space reclaimed!

名称

svnadmin load — 从标准输出读取“

转储文件”格式流。

概要

svnadmin load REPOS_PATH

描述

从标准输出读取“

转储文件”格式流,提交新的修订版本到版本库文件系统,发送进展反馈到标准输出。

选项

--quiet (-q)
--ignore-uuid
--force-uuid
--use-pre-commit-hook
--use-post-commit-hook
--parent-dir

例子

这里显示了加载一个备份文件到版本库(当然,使用

svnadmin dump):
$ svnadmin load /usr/local/svn/restored < repos-backup
<<< Started new txn, based on original revision 1* adding path : test ... done.* adding path : test/a ... done.
…

或者你希望加载到一个子目录:

$ svnadmin load --parent-dir new/subdir/for/project /usr/local/svn/restored < repos-backup
<<< Started new txn, based on original revision 1* adding path : test ... done.* adding path : test/a ... done.
…

名称

svnadmin lslocks — 打印所有锁定的描述。

概要

svnadmin lslocks REPOS_PATH

描述

打印版本库所有锁定的描述。

选项

例子

显示了版本库/svn/repos中一个锁定的文件:

$ svnadmin lslocks /svn/repos
Path: /tree.jpg
UUID Token: opaquelocktoken:ab00ddf0-6afb-0310-9cd0-dda813329753
Owner: harry
Created: 2005-07-08 17:27:36 -0500 (Fri, 08 Jul 2005)
Expires: 
Comment (1 line):
Rework the uppermost branches on the bald cypress in the foreground.

名称

svnadmin lstxns — 打印所有未提交的事物名称。

概要

svnadmin lstxns REPOS_PATH

描述

打印所有未提交的事物名称。关于未提交事物是怎样创建和如何使用的信息见

“版本库清理”一节。

例子

列出版本库所有突出的事物。

$ svnadmin lstxns /usr/local/svn/repos/ 
1w
1x

名称

svnadmin recover — 将版本库数据库恢复到稳定状态(只有在版本库使用bdb作为后端时使用),此外,如果repos/conf/passwd不存在,它会创建一个默认的密码文件。

概要

svnadmin recover REPOS_PATH

描述

在你得到的错误说明你需要恢复版本库时运行这个命令。

选项

--wait

例子

恢复挂起的版本库:

$ svnadmin recover /usr/local/svn/repos/ 
Repository lock acquired.
Please wait; recovering the repository may take some time...Recovery completed.
The latest repos revision is 34.

恢复数据库需要一个版本库的独占锁(这是一个“

数据库锁”;见 “ 锁定”的三种含义),如果另一个进程访问版本库,svnadmin recover会出错:
$ svnadmin recover /usr/local/svn/repos
svn: Failed to get exclusive repository access; perhaps another process
such as httpd, svnserve or svn has it open?$

--wait选项可以导致

svnadmin recover一直等待其它进程断开连接:
$ svnadmin recover /usr/local/svn/repos --wait
Waiting on repository lock; perhaps another process has it open?### time goes by...Repository lock acquired.
Please wait; recovering the repository may take some time...Recovery completed.
The latest repos revision is 34.

名称

svnadmin rmlocks — 无条件的删除版本库的一个或多个锁定。

概要

svnadmin rmlocks REPOS_PATH LOCKED_PATH...

描述

从LOCKED_PATH删除没个锁定。

选项

例子

这删除了版本库/svn/repos里tree.jpg和house.jpg文件上的锁定:

$ svnadmin rmlocks /svn/repos tree.jpg house.jpg
Removed lock on '/tree.jpg.
Removed lock on '/house.jpg.

名称

svnadmin rmtxns — 从版本库删除事物。

概要

svnadmin rmtxns REPOS_PATH TXN_NAME...

描述

删除版本库突出的事物,更多细节在

“版本库清理”一节。

选项

--quiet (-q)

例子

删除命名的事物:

$ svnadmin rmtxns /usr/local/svn/repos/ 1w 1x

很幸运,

lstxns的输出作为rmtxns输入工作良好:
$ svnadmin rmtxns /usr/local/svn/repos/  `svnadmin lstxns /usr/local/svn/repos/`

从版本库删除所有未提交的事务。


名称

svnadmin setlog — 设置某个修订版本的日志信息。

概要

svnadmin setlog REPOS_PATH -r REVISION FILE

描述

设置修订版本REVISION的日志信息为FILE的内容。

这与使用

svn propset --revprop设置某一修订版本的svn:log属性效果一样,除了你也可以使用--bypass-hooks选项绕过的所有pre-或post-commit的钩子脚本,这在pre-revprop-change钩子脚本中禁止修改修订版本属性时非常有用。

警告

修订版本属性不在版本控制之下的,所以这个命令会永久覆盖前一个日志信息。

选项

--revision (-r) ARG
--bypass-hooks

例子

设置修订版本19的日志信息为文件msg的内容:

$ svnadmin setlog /usr/local/svn/repos/ -r 19 msg

名称

svnadmin verify — 验证版本库保存的数据。

概要

svnadmin verify REPOS_PATH

描述

如果希望验证版本库的完整性可以运行这个命令,原理是通过在内部转储遍历所有的修订版本并且丢掉输出。

例子

检验挂起的版本库:

$ svnadmin verify /usr/local/svn/repos/ 
* Verified revision 1729.

这篇关于SVN - svnadmin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/472390

相关文章

macOS升级后SVN升级

问题 svn: error: The subversion command line tools are no longer provided by Xcode. 解决 sudo chown -R $(whoami) /usr/local/Cellar brew install svn

idea下svn的使用

创建项目 设置ignore文件 创建分支 切换到分支 查看当前分支 创建项目 设置ignore文件 .idea.mvntarget.gitignore*.imlmvnw.cmdmvnw 创建分支 切换到分支 查看当前分支

eclipse安装subversion(SVN)版本控制插件

陈科肇 查看插件更新站点 网址:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 网站截图: 根据自己的eclipse版本,选择需要的更新站点. 使用eclipse集成subservion插件 Help > Install New Software…> 等待下载安装插件…

CentOS 7 SVN的搭建和使用

https://subversion.apache.org/packages.html#centos 阿里云的ECS貌似已经自带了SVN [root@xxx ~]# svn --versionsvn, version 1.7.14 (r1542130)compiled Aug 23 2017, 20:43:38Copyright (C) 2013 The Apache Software Fo

Jenkins+Svn+Vue自动化构建部署前端项目(保姆级图文教程)

目录 介绍 准备工作 配置jenkins 构建部署任务 常见问题 介绍 在平常开发前端vue项目时,我们通常需要将vue项目进行打包构建,将打包好的dist目录下的静态文件上传到服务器上,但是这种繁琐的操作是比较浪费时间的,可以使用jenkins进行自动化构建部署前端vue 准备工作 准备vue项目,服务器,linux,ubuntu,centos等都可以,服务器上已经

SVN Cornerstone 报错信息 xcodeproj cannot be opened because the project file cannot be parsed.

svn点击update 之后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed. 发现项目中代码全没了。只有一个空的工程名字,因为xcodeproj工程文件冲突了,然后就是svn强制给你更新了,内部的文件冲突了,你们改了同样的地方的一段代码,可能是你们只是多加

王立平--eclipse向svn服务器上传项目

1.team-->share project 2.选择svn 3.选择哪个都可以,,我选择使用已有的资源位置 4.地址,,,在svn服务其上查看。。 (在服务器上的新建的资源库名字上右键,,出现copy url to clipboard) 5.选哪个都可以。。。 6.用户名和密码是服务器分配的。。 7.ok.

git svn 日记

1. git log -p -1 --name-only 该命令用于查看最新的一次提交记录的详细信息,包括文件更改情况。 git log:显示 Git 仓库的提交历史。-p:显示每次提交的差异 (diff),也就是文件内容的修改部分。-1:表示只显示最近的一次提交。--name-only:只显示被修改的文件名,而不显示详细的差异内容。 总结:该命令会输出最近一次提交的日志,显示提交的差异内容

Svn常用操作技巧详细说明

TortoiseSVN是一个Windows操作系统下的Subversion客户端,它为用户提供了直观易用的界面,方便进行版本控制操作。下面是一些TortoiseSVN的常用操作技巧的详细说明: 检出代码: 在Windows资源管理器中,选择一个空文件夹,右键点击选择“SVN Checkout”。在对话框中输入要检出的仓库URL和目标路径,点击“OK”即可开始检出代码。 提交代码: 在Windo

VS Code与SVN关联

VS Code是一款轻量级的集成开发环境,可通过安装插件与SVN进行关联。以下是将VS Code与SVN关联的步骤: 安装SVN插件:在VS Code中打开Extensions(快捷键:Ctrl+Shift+X),搜索并安装"svn"插件。 安装SVN命令行工具:在计算机上安装SVN命令行工具,确保在命令行中可以运行svn命令。 配置SVN路径:在VS Code中打开用户设置(快捷键:Ct