Exemplo n.º 1
0
def main():
    argc = len(sys.argv)
    if argc < 4 or argc > 5:
        usage_and_exit("Not enough arguments provided.")
    try:
        repos_path = core.svn_path_canonicalize(sys.argv[1])
    except AttributeError:
        repos_path = os.path.normpath(sys.argv[1])
        if repos_path[-1] == '/' and len(repos_path) > 1:
            repos_path = repos_path[:-1]
    try:
        author = sys.argv[4]
    except IndexError:
        author = None
    mode = sys.argv[2]
    try:
        if mode == "replace":
            old_author = sys.argv[3]
            fs_obj = get_fs_obj(repos_path)
            for revision in range(fs.svn_fs_youngest_rev(fs_obj) + 1):
                if fetch_rev_author(fs_obj, revision) == old_author:
                    tweak_rev_author(fs_obj, revision, author)
        elif mode == "revision":
            try:
                revision = int(sys.argv[3])
            except ValueError:
                usage_and_exit("Invalid revision number (%s) provided."
                               % (sys.argv[3]))
            tweak_rev_author(get_fs_obj(repos_path), revision, author)
        else:
            usage_and_exit("Invalid mode (%s) provided." % (mode))
    except SystemExit:
        raise
    except Exception as e:
        error_and_exit(str(e))
Exemplo n.º 2
0
def main():
    argc = len(sys.argv)
    if argc < 4 or argc > 5:
        usage_and_exit("Not enough arguments provided.")
    try:
        repos_path = core.svn_path_canonicalize(sys.argv[1])
    except AttributeError:
        repos_path = os.path.normpath(sys.argv[1])
        if repos_path[-1] == '/' and len(repos_path) > 1:
            repos_path = repos_path[:-1]
    try:
        author = sys.argv[4]
    except IndexError:
        author = None
    mode = sys.argv[2]
    try:
        if mode == "replace":
            old_author = sys.argv[3]
            fs_obj = get_fs_obj(repos_path)
            for revision in range(fs.svn_fs_youngest_rev(fs_obj) + 1):
                if fetch_rev_author(fs_obj, revision) == old_author:
                    tweak_rev_author(fs_obj, revision, author)
        elif mode == "revision":
            try:
                revision = int(sys.argv[3])
            except ValueError:
                usage_and_exit("Invalid revision number (%s) provided." %
                               (sys.argv[3]))
            tweak_rev_author(get_fs_obj(repos_path), revision, author)
        else:
            usage_and_exit("Invalid mode (%s) provided." % (mode))
    except SystemExit:
        raise
    except Exception as e:
        error_and_exit(str(e))
Exemplo n.º 3
0
def main(pool, repos_dir, path):
    # Construct a ChangeCollector to fetch our changes.
    fs_ptr = repos.svn_repos_fs(repos.svn_repos_open(repos_dir, pool))
    youngest_rev = fs.svn_fs_youngest_rev(fs_ptr, pool)
    root = fs.svn_fs_revision_root(fs_ptr, youngest_rev, pool)
    if not fs.svn_fs_node_prop(root, path, core.SVN_PROP_NEEDS_LOCK, pool):
        sys.stderr.write(
            """Locking of path '%s' prohibited by repository policy (must have
%s property set)
""" % (path, core.SVN_PROP_NEEDS_LOCK))
        return 1
    return 0
def main(pool, repos_dir, path):
    # Construct a ChangeCollector to fetch our changes.
    fs_ptr = repos.svn_repos_fs(repos.svn_repos_open(repos_dir, pool))
    youngest_rev = fs.svn_fs_youngest_rev(fs_ptr, pool)
    root = fs.svn_fs_revision_root(fs_ptr, youngest_rev, pool)
    if not fs.svn_fs_node_prop(root, path, core.SVN_PROP_NEEDS_LOCK, pool):
        sys.stderr.write(
"""Locking of path '%s' prohibited by repository policy (must have
%s property set)
""" % (path, core.SVN_PROP_NEEDS_LOCK))
        return 1
    return 0
Exemplo n.º 5
0
def crawl_revisions(pool, repos_path):
    """Open the repository at REPOS_PATH, and recursively crawl all its
    revisions."""
    global final_rev

    # Open the repository at REPOS_PATH, and get a reference to its
    # versioning filesystem.
    repos_obj = svn_repos_open(repos_path, pool)
    fs_obj = svn_repos_fs(repos_obj)

    # Query the current youngest revision.
    youngest_rev = svn_fs_youngest_rev(fs_obj, pool)

    first_rev = 1
    if final_rev == 0:
        final_rev = youngest_rev
    for rev in xrange(first_rev, final_rev + 1):
        export_revision(rev, repos_obj, fs_obj, pool)
Exemplo n.º 6
0
def crawl_revisions(pool, repos_path):
    """Open the repository at REPOS_PATH, and recursively crawl all its
    revisions."""
    global final_rev

    # Open the repository at REPOS_PATH, and get a reference to its
    # versioning filesystem.
    repos_obj = svn_repos_open(repos_path, pool)
    fs_obj = svn_repos_fs(repos_obj)

    # Query the current youngest revision.
    youngest_rev = svn_fs_youngest_rev(fs_obj, pool)

    first_rev = 1
    if final_rev == 0:
        final_rev = youngest_rev
    for rev in xrange(first_rev, final_rev + 1):
        export_revision(rev, repos_obj, fs_obj, pool)