⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verify-history.py

📁 linux subdivision ying gai ke yi le ba
💻 PY
字号:
#!/usr/bin/python# This program is used to verify the FS history code.## The basic gist is this: given a repository, a path in that# repository, and a revision at which to begin plowing through history# (towards revision 1), verify that each history object returned by# the svn_fs_history_prev() interface -- indirectly via# svn_repos_history() -- represents a revision in which the node being# tracked actually changed, or where a parent directory of the node# was copied, according to the list of paths changed as reported by# svn_fs_paths_changed().## A fun way to run this:##   #!/bin/sh##   export VERIFY=/path/to/verify-history.py#   export MYREPOS=/path/to/repos#   #   # List the paths in HEAD of the repos (filtering out the directories)#   for VCFILE in `svn ls -R file://${MYREPOS} | grep -v '/$'`; do#     echo "Checking ${VCFILE}"#     ${VERIFY} ${MYREPOS} ${VCFILE}#   doneimport sysimport stringfrom svn import core, repos, fsclass HistoryChecker:  def __init__(self, fs_ptr):    self.fs_ptr = fs_ptr          def _check_history(self, path, revision, pool):    root = fs.revision_root(self.fs_ptr, revision, pool)    changes = fs.paths_changed(root, pool)    while 1:      if changes.has_key(path):        return 1      if path == '/':        return 0      idx = string.rfind(path, '/')      if idx != -1:        path = path[:idx]      else:        return 0  def add_history(self, path, revision, pool):    if not self._check_history(path, revision, pool):      print "**WRONG** %8d %s" % (revision, path)    else:      print "          %8d %s" % (revision, path)def check_history(fs_ptr, path, revision, pool):  history = HistoryChecker(fs_ptr)  repos.svn_repos_history(fs_ptr, path, history.add_history,                          1, revision, 1, pool)def main():  argc = len(sys.argv)  if argc < 3 or argc > 4:    print "Usage: %s PATH-TO-REPOS PATH-IN-REPOS [REVISION]"    sys.exit(1)  core.apr_initialize()  pool = core.svn_pool_create(None)  fs_ptr = repos.svn_repos_fs(repos.svn_repos_open(sys.argv[1], pool))  if argc == 3:    revision = fs.youngest_rev(fs_ptr, pool)  else:    revision = int(sys.argv[3])  check_history(fs_ptr, sys.argv[2], revision, pool)  sys.exit(0)if __name__ == '__main__':  main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -