diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 17:18:30 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 17:18:30 +0000 |
commit | b4812461b41888d1b50edc1ac769031a5c873d76 (patch) | |
tree | 3031b0334316fa54b6468424186b893fad245a4d | |
parent | 59c25f691602065888356a30160338bc15c34172 (diff) |
automatic import of python-svn
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-svn.spec | 990 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 992 insertions, 0 deletions
@@ -0,0 +1 @@ +/svn-1.0.1.tar.gz diff --git a/python-svn.spec b/python-svn.spec new file mode 100644 index 0000000..35b3187 --- /dev/null +++ b/python-svn.spec @@ -0,0 +1,990 @@ +%global _empty_manifest_terminate_build 0 +Name: python-svn +Version: 1.0.1 +Release: 1 +Summary: Intuitive Subversion wrapper. +License: GPL 2 +URL: https://github.com/dsoprea/PySvn +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2b/a5/a23ed647d0cbdac48de23d822581e273f087364c57e2cd1c3efc979e91f5/svn-1.0.1.tar.gz +BuildArch: noarch + + +%description +[](https://travis-ci.org/dsoprea/PySvn) + +[](https://coveralls.io/github/dsoprea/PySvn?branch=master) + + +# Introduction + +*svn* is a simple Subversion library for Python. I wrote it so that there could +be a lightweight and accessible library that was also available on *PyPI*. It is +compatible with both Python 2.7 and 3.3+. + +The library wraps the `svn` commandline client, which should consequently be +installed on the local system. + +Functions currently implemented: + +- list +- info +- log +- checkout +- export +- cat +- diff +- diff_summary +- status +- add +- commit +- update +- cleanup + +In addition, there is also an "admin" class (`svn.admin.Admin`) that provides a +`create` method with which to create repositories. + +**You are more than welcome to submit pull-requests to add more support for +additional subcommands.** + + +# Usage + +Usage is divided between two clients that either allow for access to a local +working-directory or a remote repository. + +Both clients inherit a common set of methods that work with both local working- +directories and remote repositories. + +`svn.utility.get_client` is provided for convenience. If you provide a location +that starts with a backslash, it will return a LocalClient instance. Otherwise, +it will return a RemoteClient instance. + +You may pass `username` and `password` as optional arguments to both the +constructor and utility function. + + +## LocalClient + +*LocalClient* allows access to a local working copy. + + +## RemoteClient + +*RemoteClient* allows access to a remote repository. + + +## SvnException + +*SvnException* is raised whenever there is an issue with the svn repository. We +are no longer supporting catching *ValueError*. + + +## checkout(path) + +Checkout a remote repository: + +``` +import svn.remote + +r = svn.remote.RemoteClient('https://repo.local/svn') +r.checkout('/tmp/working') +``` + + +## Common Functionality + +These methods are available on both clients. + + +### info(rel_path=None) + +Get information about the directory. + +``` +import pprint + +import svn.local + +r = svn.local.LocalClient('/tmp/test_repo.co') +info = r.info() +pprint.pprint(info) + +#{'commit#revision': 0, +# 'commit/author': None, +# 'commit/date': datetime.datetime(2015, 4, 24, 2, 53, 21, 874970, tzinfo=tzutc()), +# 'commit_author': None, +# 'commit_date': datetime.datetime(2015, 4, 24, 2, 53, 21, 874970, tzinfo=tzutc()), +# 'commit_revision': 0, +# 'entry#kind': 'dir', +# 'entry#path': '/tmp/test_repo.co', +# 'entry#revision': 0, +# 'entry_kind': 'dir', +# 'entry_path': '/tmp/test_repo.co', +# 'entry_revision': 0, +# 'relative_url': None, +# 'repository/root': 'file:///tmp/test_repo', +# 'repository/uuid': '7446d4e9-8846-46c0-858a-34a2a1739d1c', +# 'repository_root': 'file:///tmp/test_repo', +# 'repository_uuid': '7446d4e9-8846-46c0-858a-34a2a1739d1c', +# 'url': 'file:///tmp/test_repo', +# 'wc-info/depth': None, +# 'wc-info/schedule': None, +# 'wc-info/wcroot-abspath': None, +# 'wcinfo_depth': None, +# 'wcinfo_schedule': None, +# 'wcinfo_wcroot_abspath': None} +``` + +NOTE: The keys named with dashes, slashes, and hashes are considered + obsolete, and only available for backwards compatibility. We + have since moved to using only underscores to separate words. + + +### cat(rel_filepath) + +Get file-data as string. + +``` +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo') +content = l.cat('test_file') +``` + + +### log_default(timestamp_from_dt=None, timestamp_to_dt=None, limit=None, rel_filepath='', stop_on_copy=False, revision_from=None, revision_to=None, changelist=False) + +Perform a log-listing that can be bounded by time or revision number and/or +take a maximum-count. + +``` +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +for e in l.log_default(): + print(e) + +#LogEntry(date=datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), msg='Added second file.', revision=2, author='dustin') +#LogEntry(date=datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), msg='Initial commit.', revision=1, author='dustin') +``` + + +### export(to_path, revision=None, force=False) + +Checkout the tree without embedding an meta-information. + +``` +import svn.remote + +r = svn.remote.RemoteClient('file:///tmp/test_repo') +r.export('/tmp/test_export') +``` + +We can also use `force` option to force the svn export. + + +### list(extended=False, rel_path=None) + +Return either a flat-list of filenames or a list of objects describing even +more information about each. + +``` +import pprint + +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +# Flat list. + +entries = l.list() +for filename in entries: + print(filename) + +#aa +#bb + +# Extended information. + +entries = l.list(extended=True) +for entry in entries: + pprint.pprint(entry) + +#{'author': 'dustin', +# 'commit_revision': 1, +# 'date': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'aa', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc())} +#{'author': 'dustin', +# 'commit_revision': 2, +# 'date': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'bb', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc())} +``` + + +### list_recursive(rel_path=None, yield_dirs=False, path_filter_cb=None) + +List all entries at and beneath the root or given relative-path. + +``` +import pprint + +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +for rel_path, e in l.list_recursive(): + print('') + print('[' + rel_path + ']') + print('') + + pprint.pprint(e) + +#[] +# +#{'author': 'dustin', +# 'commit_revision': 1, +# 'date': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'aa', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc())} +# +#[] +# +#{'author': 'dustin', +# 'commit_revision': 2, +# 'date': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'bb', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc())} +# +#[dir1] +# +#{'author': 'dustin', +# 'commit_revision': 3, +# 'date': datetime.datetime(2015, 4, 24, 3, 25, 13, 479212, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'cc', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 25, 13, 479212, tzinfo=tzutc())} +``` + + +### diff_summary(start_revision, end_revision) + +A lower-level diff summary that doesn't actually provide the content +differences. + +``` +import svn.remote + +l = svn.remote.RemoteClient('http://svn.apache.org/repos/asf') +print l.diff_summary(1760022, 1760023) + +# [{'item': 'modified', +# 'kind': 'file', +# 'path': 'http://svn.apache.org/repos/asf/sling/trunk/pom.xml'}, +# {'item': 'added', +# 'kind': 'file', +# 'path': 'http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/pom.xml'}] +``` + + +### diff(start_revision, end_revision) + +Diffs between start and end revisions + + +# Notice of Diff Reimplementation in 1.0.0 + +There was a previous contribution to the diff implementation that has been +reported and confirmed to often throw an exception due to shoddy handling of +the file-paths in the output. It also made secondary shell calls and mixed both +text and XML output in the response. As a result of this, the decision has been +made to just reimplement it and reshape the output in a backwards-incompatible +way at the same time. If you need to stick to the older implementation, tie your +dependencies to the 0.3.46 release. + +%package -n python3-svn +Summary: Intuitive Subversion wrapper. +Provides: python-svn +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-svn +[](https://travis-ci.org/dsoprea/PySvn) + +[](https://coveralls.io/github/dsoprea/PySvn?branch=master) + + +# Introduction + +*svn* is a simple Subversion library for Python. I wrote it so that there could +be a lightweight and accessible library that was also available on *PyPI*. It is +compatible with both Python 2.7 and 3.3+. + +The library wraps the `svn` commandline client, which should consequently be +installed on the local system. + +Functions currently implemented: + +- list +- info +- log +- checkout +- export +- cat +- diff +- diff_summary +- status +- add +- commit +- update +- cleanup + +In addition, there is also an "admin" class (`svn.admin.Admin`) that provides a +`create` method with which to create repositories. + +**You are more than welcome to submit pull-requests to add more support for +additional subcommands.** + + +# Usage + +Usage is divided between two clients that either allow for access to a local +working-directory or a remote repository. + +Both clients inherit a common set of methods that work with both local working- +directories and remote repositories. + +`svn.utility.get_client` is provided for convenience. If you provide a location +that starts with a backslash, it will return a LocalClient instance. Otherwise, +it will return a RemoteClient instance. + +You may pass `username` and `password` as optional arguments to both the +constructor and utility function. + + +## LocalClient + +*LocalClient* allows access to a local working copy. + + +## RemoteClient + +*RemoteClient* allows access to a remote repository. + + +## SvnException + +*SvnException* is raised whenever there is an issue with the svn repository. We +are no longer supporting catching *ValueError*. + + +## checkout(path) + +Checkout a remote repository: + +``` +import svn.remote + +r = svn.remote.RemoteClient('https://repo.local/svn') +r.checkout('/tmp/working') +``` + + +## Common Functionality + +These methods are available on both clients. + + +### info(rel_path=None) + +Get information about the directory. + +``` +import pprint + +import svn.local + +r = svn.local.LocalClient('/tmp/test_repo.co') +info = r.info() +pprint.pprint(info) + +#{'commit#revision': 0, +# 'commit/author': None, +# 'commit/date': datetime.datetime(2015, 4, 24, 2, 53, 21, 874970, tzinfo=tzutc()), +# 'commit_author': None, +# 'commit_date': datetime.datetime(2015, 4, 24, 2, 53, 21, 874970, tzinfo=tzutc()), +# 'commit_revision': 0, +# 'entry#kind': 'dir', +# 'entry#path': '/tmp/test_repo.co', +# 'entry#revision': 0, +# 'entry_kind': 'dir', +# 'entry_path': '/tmp/test_repo.co', +# 'entry_revision': 0, +# 'relative_url': None, +# 'repository/root': 'file:///tmp/test_repo', +# 'repository/uuid': '7446d4e9-8846-46c0-858a-34a2a1739d1c', +# 'repository_root': 'file:///tmp/test_repo', +# 'repository_uuid': '7446d4e9-8846-46c0-858a-34a2a1739d1c', +# 'url': 'file:///tmp/test_repo', +# 'wc-info/depth': None, +# 'wc-info/schedule': None, +# 'wc-info/wcroot-abspath': None, +# 'wcinfo_depth': None, +# 'wcinfo_schedule': None, +# 'wcinfo_wcroot_abspath': None} +``` + +NOTE: The keys named with dashes, slashes, and hashes are considered + obsolete, and only available for backwards compatibility. We + have since moved to using only underscores to separate words. + + +### cat(rel_filepath) + +Get file-data as string. + +``` +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo') +content = l.cat('test_file') +``` + + +### log_default(timestamp_from_dt=None, timestamp_to_dt=None, limit=None, rel_filepath='', stop_on_copy=False, revision_from=None, revision_to=None, changelist=False) + +Perform a log-listing that can be bounded by time or revision number and/or +take a maximum-count. + +``` +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +for e in l.log_default(): + print(e) + +#LogEntry(date=datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), msg='Added second file.', revision=2, author='dustin') +#LogEntry(date=datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), msg='Initial commit.', revision=1, author='dustin') +``` + + +### export(to_path, revision=None, force=False) + +Checkout the tree without embedding an meta-information. + +``` +import svn.remote + +r = svn.remote.RemoteClient('file:///tmp/test_repo') +r.export('/tmp/test_export') +``` + +We can also use `force` option to force the svn export. + + +### list(extended=False, rel_path=None) + +Return either a flat-list of filenames or a list of objects describing even +more information about each. + +``` +import pprint + +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +# Flat list. + +entries = l.list() +for filename in entries: + print(filename) + +#aa +#bb + +# Extended information. + +entries = l.list(extended=True) +for entry in entries: + pprint.pprint(entry) + +#{'author': 'dustin', +# 'commit_revision': 1, +# 'date': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'aa', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc())} +#{'author': 'dustin', +# 'commit_revision': 2, +# 'date': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'bb', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc())} +``` + + +### list_recursive(rel_path=None, yield_dirs=False, path_filter_cb=None) + +List all entries at and beneath the root or given relative-path. + +``` +import pprint + +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +for rel_path, e in l.list_recursive(): + print('') + print('[' + rel_path + ']') + print('') + + pprint.pprint(e) + +#[] +# +#{'author': 'dustin', +# 'commit_revision': 1, +# 'date': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'aa', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc())} +# +#[] +# +#{'author': 'dustin', +# 'commit_revision': 2, +# 'date': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'bb', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc())} +# +#[dir1] +# +#{'author': 'dustin', +# 'commit_revision': 3, +# 'date': datetime.datetime(2015, 4, 24, 3, 25, 13, 479212, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'cc', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 25, 13, 479212, tzinfo=tzutc())} +``` + + +### diff_summary(start_revision, end_revision) + +A lower-level diff summary that doesn't actually provide the content +differences. + +``` +import svn.remote + +l = svn.remote.RemoteClient('http://svn.apache.org/repos/asf') +print l.diff_summary(1760022, 1760023) + +# [{'item': 'modified', +# 'kind': 'file', +# 'path': 'http://svn.apache.org/repos/asf/sling/trunk/pom.xml'}, +# {'item': 'added', +# 'kind': 'file', +# 'path': 'http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/pom.xml'}] +``` + + +### diff(start_revision, end_revision) + +Diffs between start and end revisions + + +# Notice of Diff Reimplementation in 1.0.0 + +There was a previous contribution to the diff implementation that has been +reported and confirmed to often throw an exception due to shoddy handling of +the file-paths in the output. It also made secondary shell calls and mixed both +text and XML output in the response. As a result of this, the decision has been +made to just reimplement it and reshape the output in a backwards-incompatible +way at the same time. If you need to stick to the older implementation, tie your +dependencies to the 0.3.46 release. + +%package help +Summary: Development documents and examples for svn +Provides: python3-svn-doc +%description help +[](https://travis-ci.org/dsoprea/PySvn) + +[](https://coveralls.io/github/dsoprea/PySvn?branch=master) + + +# Introduction + +*svn* is a simple Subversion library for Python. I wrote it so that there could +be a lightweight and accessible library that was also available on *PyPI*. It is +compatible with both Python 2.7 and 3.3+. + +The library wraps the `svn` commandline client, which should consequently be +installed on the local system. + +Functions currently implemented: + +- list +- info +- log +- checkout +- export +- cat +- diff +- diff_summary +- status +- add +- commit +- update +- cleanup + +In addition, there is also an "admin" class (`svn.admin.Admin`) that provides a +`create` method with which to create repositories. + +**You are more than welcome to submit pull-requests to add more support for +additional subcommands.** + + +# Usage + +Usage is divided between two clients that either allow for access to a local +working-directory or a remote repository. + +Both clients inherit a common set of methods that work with both local working- +directories and remote repositories. + +`svn.utility.get_client` is provided for convenience. If you provide a location +that starts with a backslash, it will return a LocalClient instance. Otherwise, +it will return a RemoteClient instance. + +You may pass `username` and `password` as optional arguments to both the +constructor and utility function. + + +## LocalClient + +*LocalClient* allows access to a local working copy. + + +## RemoteClient + +*RemoteClient* allows access to a remote repository. + + +## SvnException + +*SvnException* is raised whenever there is an issue with the svn repository. We +are no longer supporting catching *ValueError*. + + +## checkout(path) + +Checkout a remote repository: + +``` +import svn.remote + +r = svn.remote.RemoteClient('https://repo.local/svn') +r.checkout('/tmp/working') +``` + + +## Common Functionality + +These methods are available on both clients. + + +### info(rel_path=None) + +Get information about the directory. + +``` +import pprint + +import svn.local + +r = svn.local.LocalClient('/tmp/test_repo.co') +info = r.info() +pprint.pprint(info) + +#{'commit#revision': 0, +# 'commit/author': None, +# 'commit/date': datetime.datetime(2015, 4, 24, 2, 53, 21, 874970, tzinfo=tzutc()), +# 'commit_author': None, +# 'commit_date': datetime.datetime(2015, 4, 24, 2, 53, 21, 874970, tzinfo=tzutc()), +# 'commit_revision': 0, +# 'entry#kind': 'dir', +# 'entry#path': '/tmp/test_repo.co', +# 'entry#revision': 0, +# 'entry_kind': 'dir', +# 'entry_path': '/tmp/test_repo.co', +# 'entry_revision': 0, +# 'relative_url': None, +# 'repository/root': 'file:///tmp/test_repo', +# 'repository/uuid': '7446d4e9-8846-46c0-858a-34a2a1739d1c', +# 'repository_root': 'file:///tmp/test_repo', +# 'repository_uuid': '7446d4e9-8846-46c0-858a-34a2a1739d1c', +# 'url': 'file:///tmp/test_repo', +# 'wc-info/depth': None, +# 'wc-info/schedule': None, +# 'wc-info/wcroot-abspath': None, +# 'wcinfo_depth': None, +# 'wcinfo_schedule': None, +# 'wcinfo_wcroot_abspath': None} +``` + +NOTE: The keys named with dashes, slashes, and hashes are considered + obsolete, and only available for backwards compatibility. We + have since moved to using only underscores to separate words. + + +### cat(rel_filepath) + +Get file-data as string. + +``` +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo') +content = l.cat('test_file') +``` + + +### log_default(timestamp_from_dt=None, timestamp_to_dt=None, limit=None, rel_filepath='', stop_on_copy=False, revision_from=None, revision_to=None, changelist=False) + +Perform a log-listing that can be bounded by time or revision number and/or +take a maximum-count. + +``` +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +for e in l.log_default(): + print(e) + +#LogEntry(date=datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), msg='Added second file.', revision=2, author='dustin') +#LogEntry(date=datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), msg='Initial commit.', revision=1, author='dustin') +``` + + +### export(to_path, revision=None, force=False) + +Checkout the tree without embedding an meta-information. + +``` +import svn.remote + +r = svn.remote.RemoteClient('file:///tmp/test_repo') +r.export('/tmp/test_export') +``` + +We can also use `force` option to force the svn export. + + +### list(extended=False, rel_path=None) + +Return either a flat-list of filenames or a list of objects describing even +more information about each. + +``` +import pprint + +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +# Flat list. + +entries = l.list() +for filename in entries: + print(filename) + +#aa +#bb + +# Extended information. + +entries = l.list(extended=True) +for entry in entries: + pprint.pprint(entry) + +#{'author': 'dustin', +# 'commit_revision': 1, +# 'date': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'aa', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc())} +#{'author': 'dustin', +# 'commit_revision': 2, +# 'date': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'bb', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc())} +``` + + +### list_recursive(rel_path=None, yield_dirs=False, path_filter_cb=None) + +List all entries at and beneath the root or given relative-path. + +``` +import pprint + +import svn.local + +l = svn.local.LocalClient('/tmp/test_repo.co') + +for rel_path, e in l.list_recursive(): + print('') + print('[' + rel_path + ']') + print('') + + pprint.pprint(e) + +#[] +# +#{'author': 'dustin', +# 'commit_revision': 1, +# 'date': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'aa', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 2, 54, 2, 136170, tzinfo=tzutc())} +# +#[] +# +#{'author': 'dustin', +# 'commit_revision': 2, +# 'date': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'bb', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 2, 39, 895975, tzinfo=tzutc())} +# +#[dir1] +# +#{'author': 'dustin', +# 'commit_revision': 3, +# 'date': datetime.datetime(2015, 4, 24, 3, 25, 13, 479212, tzinfo=tzutc()), +# 'is_directory': False, +# 'kind': 'file', +# 'name': 'cc', +# 'size': 0, +# 'timestamp': datetime.datetime(2015, 4, 24, 3, 25, 13, 479212, tzinfo=tzutc())} +``` + + +### diff_summary(start_revision, end_revision) + +A lower-level diff summary that doesn't actually provide the content +differences. + +``` +import svn.remote + +l = svn.remote.RemoteClient('http://svn.apache.org/repos/asf') +print l.diff_summary(1760022, 1760023) + +# [{'item': 'modified', +# 'kind': 'file', +# 'path': 'http://svn.apache.org/repos/asf/sling/trunk/pom.xml'}, +# {'item': 'added', +# 'kind': 'file', +# 'path': 'http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/pom.xml'}] +``` + + +### diff(start_revision, end_revision) + +Diffs between start and end revisions + + +# Notice of Diff Reimplementation in 1.0.0 + +There was a previous contribution to the diff implementation that has been +reported and confirmed to often throw an exception due to shoddy handling of +the file-paths in the output. It also made secondary shell calls and mixed both +text and XML output in the response. As a result of this, the decision has been +made to just reimplement it and reshape the output in a backwards-incompatible +way at the same time. If you need to stick to the older implementation, tie your +dependencies to the 0.3.46 release. + +%prep +%autosetup -n svn-1.0.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-svn -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.1-1 +- Package Spec generated @@ -0,0 +1 @@ +b88e1d57f14f027a58ce08f26ebf7f55 svn-1.0.1.tar.gz |