# HG changeset patch # User Sverre Rabbelier # Date 1241990710 25200 # Node ID f2ce096c4884ad996a882d651acb1963b0ee8435 # Parent 8c83d2021b030c95788c4229816fd9fdec2f2caf respect the mode flags (except symlinks) diff -r 8c83d2021b03 -r f2ce096c4884 dulwich/repo.py --- a/dulwich/repo.py Sun May 10 11:04:12 2009 -0700 +++ b/dulwich/repo.py Sun May 10 14:25:10 2009 -0700 @@ -376,8 +376,16 @@ tree_name = entry[1][0:-1] tree_data += "%s %s\0%s" % ('40000', tree_name, rawsha) if entry[0] == 'blob': - # TODO : respect the modes - tree_data += "%s %s\0%s" % ('100644', entry[1], rawsha) + # TODO : support symlinks + exec_flag = entry[3] + link_flag = entry[4] + if link_flag: + mode = '120000' + elif exec_flag: + mode = '100755' + else: + mode = '100644' + tree_data += "%s %s\0%s" % (mode, entry[1], rawsha) sha = self.write_object('tree', tree_data) return sha