From f5a5dfc18a0b8989a413e9b1f410515835d06469 Mon Sep 17 00:00:00 2001 From: Alok Singhal Date: Fri, 30 Jan 2015 10:15:08 -0800 Subject: [PATCH] Use "prefix" instead of "root_path" in write_archive --- pygit2/repository.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/pygit2/repository.py b/pygit2/repository.py index 3ac7878..69a39d1 100644 --- a/pygit2/repository.py +++ b/pygit2/repository.py @@ -31,7 +31,6 @@ from __future__ import absolute_import # Import from the Standard Library from string import hexdigits import sys, tarfile -import os.path from time import time if sys.version_info[0] < 3: from cStringIO import StringIO @@ -567,15 +566,14 @@ class Repository(_Repository): # # Utility for writing a tree into an archive # - def write_archive(self, treeish, archive, timestamp=None, root_path=None): + def write_archive(self, treeish, archive, timestamp=None, prefix=''): """Write treeish into an archive If no timestamp is provided and 'treeish' is a commit, its committer timestamp will be used. Otherwise the current time will be used. - If no root_path is provided, the archive will be created so that - extracting it will create files under root_path, instead of the current - directory (equivalent to "tar -C root_path ..." while extracting). + All path names in the archive are added to 'prefix', which defaults to + an empty string. Arguments: @@ -585,8 +583,8 @@ class Repository(_Repository): An archive from the 'tarfile' module timestamp Timestamp to use for the files in the archive. - root_path - The path under which all the files will appear in the archive. + prefix + Extra prefix to add to the path names in the archive. Example:: @@ -615,9 +613,6 @@ class Repository(_Repository): if not timestamp: timestamp = int(time()) - if root_path is None: - root_path = '.' - tree = treeish.peel(Tree) index = Index() @@ -625,7 +620,7 @@ class Repository(_Repository): for entry in index: content = self[entry.id].read_raw() - info = tarfile.TarInfo(os.path.join(root_path, entry.path)) + info = tarfile.TarInfo(prefix + entry.path) info.size = len(content) info.mtime = timestamp info.uname = info.gname = 'root' # just because git does this