scm: git: add the comment of the reason to scan database in fetching every time (#10470)

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9287 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2012-03-29 10:05:13 +00:00
parent 27dca22c91
commit 76435033e7
1 changed files with 14 additions and 0 deletions

View File

@ -165,6 +165,20 @@ class Repository::Git < Repository
return if revisions.blank? return if revisions.blank?
# Make the search for existing revisions in the database in a more sufficient manner # 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. # This is replacing the one-after-one queries.
# Find all revisions, that are in the database, and then remove them from the revision array. # 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. # Then later we won't need any conditions for db existence.