You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2013/03/12 21:04:51 UTC

[7/50] [abbrv] git commit: [#2840] Added gzip compression to snapshot

[#2840] Added gzip compression to snapshot

Signed-off-by: Cory Johns <jo...@geek.net>


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/b924f741
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/b924f741
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/b924f741

Branch: refs/heads/si/5453
Commit: b924f741e983bc450f811571f98e75e2e8a5ffc0
Parents: 8b9054a
Author: Cory Johns <jo...@geek.net>
Authored: Mon Mar 11 22:28:57 2013 +0000
Committer: Cory Johns <jo...@geek.net>
Committed: Mon Mar 11 22:29:45 2013 +0000

----------------------------------------------------------------------
 Allura/allura/model/repository.py                |    2 +-
 ForgeGit/forgegit/model/git_repo.py              |    8 +++++---
 ForgeGit/forgegit/tests/model/test_repository.py |    4 ++--
 ForgeSVN/forgesvn/model/svn.py                   |    8 ++++----
 ForgeSVN/forgesvn/tests/model/test_repository.py |    4 ++--
 5 files changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b924f741/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index d509ceb..0081ead 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -241,7 +241,7 @@ class Repository(Artifact, ActivityObject):
     def tarball_url(self, revision):
         shortname = c.app.repo.project.shortname.replace('/', '-')
         mount_point = c.app.repo.app.config.options.mount_point
-        filename = '%s-%s-%s.tar' % (shortname, mount_point, revision)
+        filename = '%s-%s-%s.tar.gz' % (shortname, mount_point, revision)
         r = os.path.join(self.tool,self.project.url()[1:],self.name,filename)
         return urljoin(tg.config.get('scm.repos.tarball.url_prefix', '/'), r)
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b924f741/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index 70c8050..c660d69 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -8,6 +8,7 @@ import itertools
 from collections import namedtuple
 from datetime import datetime
 from glob import glob
+import gzip
 
 import tg
 import git
@@ -327,9 +328,10 @@ class GitImplementation(M.RepositoryImplementation):
         mount_point = self._repo.app.config.options.mount_point
         if not os.path.exists(self._repo.tarball_path):
             os.makedirs(self._repo.tarball_path)
-        filename = '%s-%s-%s.tar' % (shortname, mount_point, commit)
-        self._git.archive(open(os.path.join(self._repo.tarball_path, filename), 'w'),
-                          treeish=commit)
+        archive_name = '%s-%s-%s' % (shortname, mount_point, commit)
+        filename = os.path.join(self._repo.tarball_path, archive_name + '.tar.gz')
+        with gzip.open(filename, 'w') as fp:
+            self._git.archive(fp, format='tar', treeish=commit, prefix=archive_name+'/')
 
 class _OpenedGitBlob(object):
     CHUNK_SIZE=4096

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b924f741/ForgeGit/forgegit/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index 7cc830e..ac848bc 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -240,9 +240,9 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
 
     def test_tarball(self):
         assert_equal(self.repo.tarball_path, '/tmp/tarball/git/p/test/testgit.git')
-        assert_equal(self.repo.tarball_url('HEAD'), 'file:///git/p/test/testgit.git/test-src-git-HEAD.tar')
+        assert_equal(self.repo.tarball_url('HEAD'), 'file:///git/p/test/testgit.git/test-src-git-HEAD.tar.gz')
         self.repo.tarball('HEAD')
-        assert os.path.isfile("/tmp/tarball/git/p/test/testgit.git/test-src-git-HEAD.tar")
+        assert os.path.isfile("/tmp/tarball/git/p/test/testgit.git/test-src-git-HEAD.tar.gz")
 
 
 class TestGitCommit(unittest.TestCase):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b924f741/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index a3490bc..7c7515a 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -621,10 +621,10 @@ class SVNImplementation(M.RepositoryImplementation):
         self._svn.export(self._url,
                          path,
                          revision=pysvn.Revision(pysvn.opt_revision_kind.number, commit))
-        filename = '%s-%s-%s.tar' % (shortname, mount_point, commit)
-        tar = tarfile.open(os.path.join(self._repo.tarball_path, filename), "w")
-        tar.add(path, arcname=commit)
-        tar.close()
+        archive_name = '%s-%s-%s' % (shortname, mount_point, commit)
+        filename = os.path.join(self._repo.tarball_path, archive_name + '.tar.gz')
+        with tarfile.open(filename, "w:gz") as tar:
+            tar.add(path, arcname=archive_name)
         rmtree(path)
 
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b924f741/ForgeSVN/forgesvn/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index f1eba67..2b02ad0 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -267,9 +267,9 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
 
     def test_tarball(self):
         assert_equal(self.repo.tarball_path, '/tmp/tarball/svn/p/test/testsvn')
-        assert_equal(self.repo.tarball_url('1'), 'file:///svn/p/test/testsvn/test-src-1.tar')
+        assert_equal(self.repo.tarball_url('1'), 'file:///svn/p/test/testsvn/test-src-1.tar.gz')
         self.repo.tarball('1')
-        assert os.path.isfile("/tmp/tarball/svn/p/test/testsvn/test-src-1.tar")
+        assert os.path.isfile("/tmp/tarball/svn/p/test/testsvn/test-src-1.tar.gz")
 
 class TestSVNRev(unittest.TestCase):