This allows a file to be marked executable in Git using the full
property-setting machinery, for example via `AutoPropsPropertySetter`.
We only need to check for the presence of the `svn:executable` flag
because Git already uses the `ExecutablePropertySetter`, which sets
the `svn:executable` property based on whether the CVS file had its
executable bit set.
Patch by: Mark Rotteveel <
[email protected]>
git-svn-id: http://cvs2svn.tigris.org/svn/cvs2svn/trunk@5470 be7e6eca-30d4-0310-a8e5-ac0d63af7087
@@ -40,6 +40,8 @@ from cvs2svn_lib.dvcs_common import MirrorUpdater
from cvs2svn_lib.key_generator import KeyGenerator
from cvs2svn_lib.artifact_manager import artifact_manager
+def cvs_item_is_executable(cvs_item):
+ return 'svn:executable' in cvs_item.cvs_file.properties
class GitRevisionWriter(MirrorUpdater):
@@ -92,7 +94,7 @@ class GitRevisionMarkWriter(GitRevisionWriter):
blobf.close()
def _modify_file(self, cvs_item, post_commit):
- if cvs_item.cvs_file.executable:
+ if cvs_item_is_executable(cvs_item):
mode = '100755'
else:
mode = '100644'
@@ -117,7 +119,7 @@ class GitRevisionInlineWriter(GitRevisionWriter):
self.revision_reader.start()
def _modify_file(self, cvs_item, post_commit):
- if cvs_item.cvs_file.executable:
+ if cvs_item_is_executable(cvs_item):
mode = '100755'
else:
mode = '100644'