diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-06-07 04:46:41 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-06-07 04:47:48 +0200 |
commit | c30e56a92ab4d9e1e2dccf5fea2535951cebb633 (patch) | |
tree | 97f98e76c2eda3504d0496e21fbcad230d61fa2d | |
parent | 1213aa69ee3dbc2cc7bdb3faefe7ccc11651598c (diff) | |
download | bcfg2-c30e56a92ab4d9e1e2dccf5fea2535951cebb633.tar.gz bcfg2-c30e56a92ab4d9e1e2dccf5fea2535951cebb633.tar.bz2 bcfg2-c30e56a92ab4d9e1e2dccf5fea2535951cebb633.zip |
Client/Tools/VCS: some simplyfications using dulwich api
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | src/lib/Client/Tools/VCS.py | 20 |
2 files changed, 10 insertions, 13 deletions
diff --git a/debian/changelog b/debian/changelog index ee19daf29..05381d869 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,9 @@ bcfg2 (1.2.3-17) unstable; urgency=low * Client/Tools/VCS: create directory for repository * Client/Tools/VCS: add always on top feature + * Client/Tools/VCS: some simplyfications using dulwich api - -- Alexander Sulfrian <alex@spline.inf.fu-berlin.de> Fri, 07 Jun 2013 04:33:54 +0200 + -- Alexander Sulfrian <alex@spline.inf.fu-berlin.de> Fri, 07 Jun 2013 04:47:39 +0200 bcfg2 (1.2.3-16) unstable; urgency=low diff --git a/src/lib/Client/Tools/VCS.py b/src/lib/Client/Tools/VCS.py index b61a39c7e..c9fa90a5d 100644 --- a/src/lib/Client/Tools/VCS.py +++ b/src/lib/Client/Tools/VCS.py @@ -102,18 +102,14 @@ class VCS(Bcfg2.Client.Tools.Tool): destr.refs['HEAD'] = entry.get('revision') dtree = destr['HEAD'].tree - obj_store = destr.object_store - for fname, mode, sha in obj_store.iter_tree_contents(dtree): - fullpath = os.path.join(destname, fname) - try: - f = open(os.path.join(destname, fname), 'wb') - except IOError: - dir = os.path.split(fullpath)[0] - os.makedirs(dir) - f = open(os.path.join(destname, fname), 'wb') - f.write(destr[sha].data) - f.close() - os.chmod(os.path.join(destname, fname), mode) + for fname, mode, sha in destr.object_store.iter_tree_contents(dtree): + full_path = os.path.join(destname, fname) + dulwich.file.ensure_dir_exists(os.path.dirname(full_path)) + + with open(full_path, 'wb') as file: + #write blob's content to file + file.write(destr[sha].as_raw_string()) + os.chmod(full_path, mode) return True # FIXME: figure out how to write the git index properly |