Kaynağa Gözat

Add support for honoring core/filemode when building trees.

Jelmer Vernooij 12 yıl önce
ebeveyn
işleme
1d60c686ac
2 değiştirilmiş dosya ile 16 ekleme ve 3 silme
  1. 7 0
      NEWS
  2. 9 3
      dulwich/repo.py

+ 7 - 0
NEWS

@@ -13,6 +13,13 @@
   * Fix handling of relative paths in dulwich.client.get_transport_and_path.
     (eode)
 
+ IMPROVEMENTS:
+
+  * Add optional honor_filemode flag to build_index_from_tree.
+    (Mark Mikofski)
+
+  * Support core/filemode setting when building trees. (Jelmer Vernooij)
+
  FEATURES
 
   * Add support for mergetags. (milki, #963525)

+ 9 - 3
dulwich/repo.py

@@ -1383,12 +1383,18 @@ class Repo(BaseRepo):
 
             if not bare:
                 # Checkout HEAD to target dir
-                from dulwich.index import build_index_from_tree
-                build_index_from_tree(target.path, target.index_path(),
-                        target.object_store, target['HEAD'].tree)
+                target._build_tree()
 
         return target
 
+    def _build_tree(self):
+        from dulwich.index import build_index_from_tree
+        config = self.get_config()
+        honor_filemode = config.get_boolean('core', 'filemode', os.name != "nt")
+        return build_index_from_tree(self.path, self.index_path(),
+                self.object_store, self['HEAD'].tree,
+                honor_filemode=honor_filemode)
+
     def get_config(self):
         """Retrieve the config object.