diff options
author | Guido Guenther <agx@sigxcpu.org> | 2008-09-22 19:06:36 +0200 |
---|---|---|
committer | Guido Guenther <agx@sigxcpu.org> | 2008-09-22 19:06:36 +0200 |
commit | 624bdc9090c7402963744684a7d6c0ac0af14927 (patch) | |
tree | 497505be411ce9eeefa856b965a729ed4764ce31 | |
parent | 3931f708113532788572e0b2590426e31a3b948c (diff) |
move replace_source_tree into GitRepository
-rw-r--r-- | gbp/git_utils.py | 30 | ||||
-rwxr-xr-x | git-import-dsc | 6 | ||||
-rwxr-xr-x | git-import-orig | 4 |
3 files changed, 20 insertions, 20 deletions
diff --git a/gbp/git_utils.py b/gbp/git_utils.py index 9a70ab88..670d9903 100644 --- a/gbp/git_utils.py +++ b/gbp/git_utils.py @@ -118,6 +118,21 @@ class GitRepository(object): raise GitRepositoryError, "can't write out current index" return tree[0].strip() + def replace_tree(self, src_dir, filters, verbose=False): + """ + make the current wc match what's in src_dir + @return: True if wc was modified + @rtype: boolean + """ + old = set(self.index_files()) + new = set(copy_from(src_dir, filters)) + GitAdd()(['-f', '.']) + files = [ obj for obj in old - new if not os.path.isdir(obj)] + if files: + GitRm(verbose=verbose)(files) + return not self.is_clean()[0] + + def build_tag(format, version): """Generate a tag from a given format and a version""" return format % dict(version=sanitize_version(version)) @@ -130,21 +145,6 @@ def sanitize_version(version): return version.replace('~', '.') -def replace_source_tree(repo, src_dir, filters, verbose=False): - """ - make the current wc match what's in src_dir - @return: True if wc was modified - @rtype: boolean - """ - old = set(repo.index_files()) - new = set(copy_from(src_dir, filters)) - GitAdd()(['-f', '.']) - files = [ obj for obj in old - new if not os.path.isdir(obj)] - if files: - GitRm(verbose=verbose)(files) - return not repo.is_clean()[0] - - def rfc822_date_to_git(rfc822_date): """Parse a date in RFC822 format, and convert to a 'seconds tz' string. >>> rfc822_date_to_git('Thu, 1 Jan 1970 00:00:01 +0000') diff --git a/git-import-dsc b/git-import-dsc index a215f5d2..e1865d51 100755 --- a/git-import-dsc +++ b/git-import-dsc @@ -26,7 +26,7 @@ import pipes from email.Utils import parseaddr import gbp.command_wrappers as gbpc from gbp.deb_utils import debian_version_chars, parse_changelog, unpack_orig, parse_dsc, DscFile, tar_toplevel -from gbp.git_utils import build_tag, GitRepository, GitRepositoryError, replace_source_tree, rfc822_date_to_git +from gbp.git_utils import build_tag, GitRepository, GitRepositoryError, rfc822_date_to_git from gbp.config import GbpOptionParser from gbp.errors import GbpError @@ -203,14 +203,14 @@ def main(argv): # FIXME: this is what import-orig does - merge if not src.native: gbpc.GitCheckoutBranch(options.upstream_branch)() - replace_source_tree(repo, unpack_dir, options.filters, verbose=True) + repo.replace_tree(unpack_dir, options.filters, verbose=True) gbpc.GitCommitAll()(msg="Imported %s" % msg) gitTag(tag, msg=msg) if options.pristine_tar and not src.native: gbpc.PristineTar().commit(src.tgz, options.upstream_branch) if not src.native: gbpc.GitCheckoutBranch(options.debian_branch)() - replace_source_tree(repo, unpack_dir, options.filters) + repo.replace_tree(unpack_dir, options.filters) apply_debian_patch(src, dirs, options) except gbpc.CommandExecFailed: os.chdir(dirs['top']) diff --git a/git-import-orig b/git-import-orig index 54a81f52..bf5a2b0e 100755 --- a/git-import-orig +++ b/git-import-orig @@ -26,7 +26,7 @@ import glob import subprocess import gbp.command_wrappers as gbpc from gbp.deb_utils import parse_changelog, unpack_orig, NoChangelogError, has_epoch, tar_toplevel -from gbp.git_utils import (GitRepositoryError, GitRepository, build_tag, replace_source_tree) +from gbp.git_utils import (GitRepositoryError, GitRepository, build_tag) from gbp.config import GbpOptionParser from gbp.errors import GbpError @@ -62,7 +62,7 @@ def symlink_orig(archive, pkg, version): def import_upstream_tree(repo, src_dir, version, filters, verbose): """import the source uptream tree to the current branch""" try: - if replace_source_tree(repo, src_dir, filters, verbose=True): + if repo.replace_tree(src_dir, filters, verbose=True): gbpc.GitCommitAll(verbose=verbose)(msg="Imported Upstream version %s" % version) else: raise GbpError, "Nothing to commit, nothing imported." |