• svnadmin命令[转]



    svnadmin是一个用来监控和修改Subversion版本库的管理工具,详情请见“svnadmin”一节

    因为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操作,也不如非增量文件容易被如gzipbzip2等第三方工具压缩。

    选项

    --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.
  • 相关阅读:
    JQuery实现1024小游戏
    Windows Server2008 R2安装wampserver缺少api-ms-win-crt-runtime-l1-1-0.dll解决方案
    ASP.NET MVC 邮件发送的功能(微软邮箱发送)。
    浅谈撞库防御策略
    极验高并发验证服务背后的技术实现
    2015年国内数据安全事件盘点
    转载——验证码的昨天、今天和明天
    转载——最近百度云盘不提供搜索,闲来无事,玩玩python爬虫,爬一下百度云盘的资源
    SQL 查询语句
    SQL Server 目录
  • 原文地址:https://www.cnblogs.com/iapp/p/3631830.html
Copyright © 2020-2023  润新知