]> source.dussan.org Git - redmine.git/commitdiff
scm: git: add the comment of the reason to scan database in fetching every time ...
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 29 Mar 2012 10:05:13 +0000 (10:05 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 29 Mar 2012 10:05:13 +0000 (10:05 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9287 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/repository/git.rb

index 48fee87e8ce6f6c3daee335c52e9e3019bcdc558..b048c0f65d402cdfcd7b673467ee7bb89f7551a6 100644 (file)
@@ -165,6 +165,20 @@ class Repository::Git < Repository
     return if revisions.blank?
 
     # Make the search for existing revisions in the database in a more sufficient manner
+    #
+    # Git branch is the reference to the specific revision.
+    # Git can *delete* remote branch and *re-push* branch.
+    #
+    #  $ git push remote :branch
+    #  $ git push remote branch
+    #
+    # After deleting branch, revisions remain in repository until "git gc".
+    # On git 1.7.2.3, default pruning date is 2 weeks.
+    # So, "git log --not deleted_branch_head_revision" return code is 0.
+    #
+    # After re-pushing branch, "git log" returns revisions which are saved in database.
+    # So, Redmine needs to scan revisions and database every time.
+    #
     # This is replacing the one-after-one queries.
     # Find all revisions, that are in the database, and then remove them from the revision array.
     # Then later we won't need any conditions for db existence.