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/04/22 23:40:48 UTC

[1/2] git commit: [#6083] Bug fixes and update empty repo msg text

Updated Branches:
  refs/heads/master 25d074616 -> 8d64c44f4


[#6083] Bug fixes and update empty repo msg text

Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>


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

Branch: refs/heads/master
Commit: 8d64c44f443632608cf6d2c089706e9ec7809f65
Parents: 2e862b7
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Mon Apr 22 21:17:13 2013 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Mon Apr 22 21:29:56 2013 +0000

----------------------------------------------------------------------
 ForgeGit/forgegit/model/git_repo.py        |    2 +-
 ForgeGit/forgegit/templates/git/index.html |    2 +-
 ForgeSVN/forgesvn/controllers.py           |    2 +-
 ForgeSVN/forgesvn/model/svn.py             |    8 +++++++-
 ForgeSVN/forgesvn/templates/svn/index.html |    2 +-
 5 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/8d64c44f/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index 296430f..5c79e34 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -356,7 +356,7 @@ class GitImplementation(M.RepositoryImplementation):
                 os.remove(tmpfilename)
 
     def is_empty(self):
-        return len(self._git.heads) == 0
+        return not self._git or len(self._git.heads) == 0
 
 
 class _OpenedGitBlob(object):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/8d64c44f/ForgeGit/forgegit/templates/git/index.html
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/templates/git/index.html b/ForgeGit/forgegit/templates/git/index.html
index 4276e65..f300d7a 100644
--- a/ForgeGit/forgegit/templates/git/index.html
+++ b/ForgeGit/forgegit/templates/git/index.html
@@ -86,7 +86,7 @@ git branch --set-upstream master origin/master  # so 'git pull' will work later<
     {% endif %}
   {% elif c.app.repo.status == 'ready' %}
     {% if h.has_access(c.app, 'write')() %}
-    <p>The metadata for this repository is to be missing.  Please try <a href="{{c.app.url}}refresh">refreshing</a> to correct this.</p>
+    <p>The metadata for this repository is missing.  To fix, please try a <a href="{{c.app.url}}refresh">refresh</a>.</p>
     {% else %}
     <p><b>No (more) commits</b></p>
     {% endif %}

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/8d64c44f/ForgeSVN/forgesvn/controllers.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/controllers.py b/ForgeSVN/forgesvn/controllers.py
index b14c134..83537a9 100644
--- a/ForgeSVN/forgesvn/controllers.py
+++ b/ForgeSVN/forgesvn/controllers.py
@@ -32,7 +32,7 @@ class BranchBrowser(repository.BranchBrowser):
     def index(self, limit=None, page=0, count=0, **kw):
         is_empty = c.app.repo.is_empty()
         latest = c.app.repo.latest(branch=self._branch)
-        if empty or not latest:
+        if is_empty or not latest:
             return dict(allow_fork=False, log=[], is_empty=is_empty)
         redirect(c.app.repo._impl.url_for_symbolic(latest._id) + 'tree/')
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/8d64c44f/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index 1224f9c..fc9879c 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -667,7 +667,13 @@ class SVNImplementation(M.RepositoryImplementation):
                 os.remove(tmpfilename)
 
     def is_empty(self):
-        return self._svn.revpropget('revision', url=self._url)[0].number == 0
+        try:
+            return self._svn.revpropget('revision', url=self._url)[0].number == 0
+        except pysvn.ClientError as e:
+            if str(e).startswith("Unable to connect"):
+                return True
+            else:
+                raise
 
 
 Mapper.compile_all()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/8d64c44f/ForgeSVN/forgesvn/templates/svn/index.html
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/templates/svn/index.html b/ForgeSVN/forgesvn/templates/svn/index.html
index 47db43e..9b81fe3 100644
--- a/ForgeSVN/forgesvn/templates/svn/index.html
+++ b/ForgeSVN/forgesvn/templates/svn/index.html
@@ -95,7 +95,7 @@ svn import {{c.app.repo.clone_url('rw', c.user.username)}} -m "Initial commit"</
     {% endif %}
   {% elif c.app.repo.status == 'ready' %}
     {% if h.has_access(c.app, 'write')() %}
-    <p>The metadata for this repository is to be missing.  Please try <a href="{{c.app.url}}refresh">refreshing</a> to correct this.</p>
+    <p>The metadata for this repository is missing.  To fix, please try a <a href="{{c.app.url}}refresh">refresh</a>.</p>
     {% else %}
     <p><b>No (more) commits</b></p>
     {% endif %}


[2/2] git commit: [#6083] Improved empty repo checking

Posted by tv...@apache.org.
[#6083] Improved empty repo checking

Signed-off-by: Cory Johns <cj...@slashdotmedia.com>


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

Branch: refs/heads/master
Commit: 2e862b7a0fe753c3fb60270fb9817f11efd98c41
Parents: 25d0746
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Apr 19 20:47:52 2013 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Mon Apr 22 21:29:56 2013 +0000

----------------------------------------------------------------------
 Allura/allura/model/repository.py                |    6 ++++++
 ForgeGit/forgegit/controllers.py                 |    5 +++--
 ForgeGit/forgegit/model/git_repo.py              |    3 +++
 ForgeGit/forgegit/templates/git/index.html       |    8 +++++++-
 ForgeGit/forgegit/tests/model/test_repository.py |   16 ++++++++++++++++
 ForgeSVN/forgesvn/controllers.py                 |    5 +++--
 ForgeSVN/forgesvn/model/svn.py                   |    3 +++
 ForgeSVN/forgesvn/templates/svn/index.html       |    8 +++++++-
 ForgeSVN/forgesvn/tests/model/test_repository.py |   16 ++++++++++++++++
 requirements-common.txt                          |    2 ++
 requirements-sf.txt                              |    2 +-
 11 files changed, 67 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index 793f411..cae4ce0 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -163,6 +163,10 @@ class RepositoryImplementation(object):
             commit = parent
         return result
 
+    def is_empty(self):
+        '''Determine if the repository is empty by checking the filesystem'''
+        raise NotImplementedError, 'is_empty'
+
     @classmethod
     def shorthand_for_commit(cls, oid):
         return '[%s]' % oid[:6]
@@ -342,6 +346,8 @@ class Repository(Artifact, ActivityObject):
         return self._impl.commits_count(path, rev)
     def last_commit_ids(self, commit, paths):
         return self._impl.last_commit_ids(commit, paths)
+    def is_empty(self):
+        return self._impl.is_empty()
 
     def _log(self, rev, skip, limit):
         head = self.commit(rev)

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/ForgeGit/forgegit/controllers.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/controllers.py b/ForgeGit/forgegit/controllers.py
index b3fdd5d..320cc9b 100644
--- a/ForgeGit/forgegit/controllers.py
+++ b/ForgeGit/forgegit/controllers.py
@@ -26,8 +26,9 @@ class BranchBrowser(repository.BranchBrowser):
     @expose('jinja:forgegit:templates/git/index.html')
     @with_trailing_slash
     def index(self, limit=None, page=0, count=0, **kw):
+        is_empty = c.app.repo.is_empty()
         latest = c.app.repo.latest(branch=self._branch)
-        if not latest:
-            return dict(allow_fork=False, log=[])
+        if is_empty or not latest:
+            return dict(allow_fork=False, log=[], is_empty=is_empty)
         redirect(c.app.repo._impl.url_for_symbolic(latest._id) + 'tree/')
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/ForgeGit/forgegit/model/git_repo.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py
index c47589a..296430f 100644
--- a/ForgeGit/forgegit/model/git_repo.py
+++ b/ForgeGit/forgegit/model/git_repo.py
@@ -355,6 +355,9 @@ class GitImplementation(M.RepositoryImplementation):
             if os.path.exists(tmpfilename):
                 os.remove(tmpfilename)
 
+    def is_empty(self):
+        return len(self._git.heads) == 0
+
 
 class _OpenedGitBlob(object):
     CHUNK_SIZE=4096

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/ForgeGit/forgegit/templates/git/index.html
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/templates/git/index.html b/ForgeGit/forgegit/templates/git/index.html
index 99881ae..4276e65 100644
--- a/ForgeGit/forgegit/templates/git/index.html
+++ b/ForgeGit/forgegit/templates/git/index.html
@@ -37,7 +37,7 @@
     {% if int(count) > int(limit) %}
       <a href="log?page=1">More</a>
     {% endif %}
-  {% elif c.app.repo.status == 'ready' %}
+  {% elif is_empty %}
     {% if h.has_access(c.app, 'write')() %}
     <div class="message warning scm-learn-basics">
       <div class="content">
@@ -84,5 +84,11 @@ git branch --set-upstream master origin/master  # so 'git pull' will work later<
     {% else %}
     <p><b>No (more) commits</b></p>
     {% endif %}
+  {% elif c.app.repo.status == 'ready' %}
+    {% if h.has_access(c.app, 'write')() %}
+    <p>The metadata for this repository is to be missing.  Please try <a href="{{c.app.url}}refresh">refreshing</a> to correct this.</p>
+    {% else %}
+    <p><b>No (more) commits</b></p>
+    {% endif %}
   {% endif %}
 {% endblock %}

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/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 41c48fd..18de668 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -27,6 +27,7 @@ import tg
 from ming.base import Object
 from ming.orm import ThreadLocalORMSession, session
 from nose.tools import assert_equal
+from testfixtures import TempDirectory
 
 from alluratest.controller import setup_basic_test, setup_global_objects
 from allura.lib import helpers as h
@@ -307,6 +308,21 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
         os.makedirs("/tmp/tarball/git/t/te/test/testgit.git/test-src-git-HEAD")
         assert_equal(self.repo.get_tarball_status('HEAD'), None)
 
+    def test_is_empty(self):
+        assert not self.repo.is_empty()
+        with TempDirectory() as d:
+            repo2 = GM.Repository(
+                name='test',
+                fs_path=d.path,
+                url_path = '/test/',
+                tool = 'git',
+                status = 'creating')
+            repo2.init()
+            assert repo2.is_empty()
+            repo2.refresh()
+            ThreadLocalORMSession.flush_all()
+            assert repo2.is_empty()
+
 
 class TestGitCommit(unittest.TestCase):
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/ForgeSVN/forgesvn/controllers.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/controllers.py b/ForgeSVN/forgesvn/controllers.py
index 156b13a..b14c134 100644
--- a/ForgeSVN/forgesvn/controllers.py
+++ b/ForgeSVN/forgesvn/controllers.py
@@ -30,9 +30,10 @@ class BranchBrowser(repository.BranchBrowser):
     @expose('jinja:forgesvn:templates/svn/index.html')
     @with_trailing_slash
     def index(self, limit=None, page=0, count=0, **kw):
+        is_empty = c.app.repo.is_empty()
         latest = c.app.repo.latest(branch=self._branch)
-        if not latest:
-            return dict(allow_fork=False, log=[])
+        if empty or not latest:
+            return dict(allow_fork=False, log=[], is_empty=is_empty)
         redirect(c.app.repo._impl.url_for_symbolic(latest._id) + 'tree/')
 
     @expose()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/ForgeSVN/forgesvn/model/svn.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/model/svn.py b/ForgeSVN/forgesvn/model/svn.py
index b4c354d..1224f9c 100644
--- a/ForgeSVN/forgesvn/model/svn.py
+++ b/ForgeSVN/forgesvn/model/svn.py
@@ -666,5 +666,8 @@ class SVNImplementation(M.RepositoryImplementation):
             if os.path.exists(tmpfilename):
                 os.remove(tmpfilename)
 
+    def is_empty(self):
+        return self._svn.revpropget('revision', url=self._url)[0].number == 0
+
 
 Mapper.compile_all()

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/ForgeSVN/forgesvn/templates/svn/index.html
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/templates/svn/index.html b/ForgeSVN/forgesvn/templates/svn/index.html
index ed80fb9..47db43e 100644
--- a/ForgeSVN/forgesvn/templates/svn/index.html
+++ b/ForgeSVN/forgesvn/templates/svn/index.html
@@ -37,7 +37,7 @@
     {% if count > limit %}
       <a href="{{c.app.url}}log?page=1">More</a>
     {% endif %}
-  {% elif c.app.repo.status == 'ready' %}
+  {% elif is_empty %}
     {% if h.has_access(c.app, 'write')() %}
     <div class="message warning scm-learn-basics">
       <div class="content">
@@ -93,5 +93,11 @@ svn import {{c.app.repo.clone_url('rw', c.user.username)}} -m "Initial commit"</
     {% else %}
     <p><b>No (more) commits</b></p>
     {% endif %}
+  {% elif c.app.repo.status == 'ready' %}
+    {% if h.has_access(c.app, 'write')() %}
+    <p>The metadata for this repository is to be missing.  Please try <a href="{{c.app.url}}refresh">refreshing</a> to correct this.</p>
+    {% else %}
+    <p><b>No (more) commits</b></p>
+    {% endif %}
   {% endif %}
 {% endblock %}

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/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 1f93dfd..e8fb14e 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -30,6 +30,7 @@ import tg
 import ming
 from ming.base import Object
 from ming.orm import session, ThreadLocalORMSession
+from testfixtures import TempDirectory
 
 from alluratest.controller import setup_basic_test, setup_global_objects
 from allura import model as M
@@ -292,6 +293,21 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
         self.repo.tarball('1')
         assert os.path.isfile("/tmp/tarball/svn/t/te/test/testsvn/test-src-1.tar.gz")
 
+    def test_is_empty(self):
+        assert not self.repo.is_empty()
+        with TempDirectory() as d:
+            repo2 = SM.Repository(
+                name='test',
+                fs_path=d.path,
+                url_path = '/test/',
+                tool = 'svn',
+                status = 'creating')
+            repo2.init()
+            assert repo2.is_empty()
+            repo2.refresh()
+            ThreadLocalORMSession.flush_all()
+            assert repo2.is_empty()
+
 class TestSVNRev(unittest.TestCase):
 
     def setUp(self):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/requirements-common.txt
----------------------------------------------------------------------
diff --git a/requirements-common.txt b/requirements-common.txt
index e072ad9..4dcf695 100644
--- a/requirements-common.txt
+++ b/requirements-common.txt
@@ -76,3 +76,5 @@ nose==1.1.2
 pyflakes==0.5.0
 WebTest==1.4.0
 clonedigger==1.1.0
+testfixtures==3.0.0
+q==2.3

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2e862b7a/requirements-sf.txt
----------------------------------------------------------------------
diff --git a/requirements-sf.txt b/requirements-sf.txt
index 628e1e8..0fc28a6 100644
--- a/requirements-sf.txt
+++ b/requirements-sf.txt
@@ -4,7 +4,7 @@ akismet==0.2.0
 amqplib==0.6.1
 kombu==1.0.4
 coverage==3.5a1-20110413
-ForgeHg==0.1.6
+ForgeHg==0.1.7
 ForgePastebin==0.2.6
 mechanize==0.2.4
 MySQL-python==1.2.3c1