Bläddra i källkod

Fix hardlink bug and added corresponding test case

Jonas Borgström 14 år sedan
förälder
incheckning
84b4b08309
2 ändrade filer med 5 tillägg och 1 borttagningar
  1. 3 1
      darc/archive.py
  2. 2 0
      darc/test.py

+ 3 - 1
darc/archive.py

@@ -224,7 +224,9 @@ class Archive(object):
         if st.st_nlink > 1:
             source = self.hard_links.get((st.st_ino, st.st_dev))
             if (st.st_ino, st.st_dev) in self.hard_links:
-                self.items.append({'path': path, 'source': source})
+                self.items.append({'mode': st.st_mode,
+                                   'path': path,
+                                   'source': source})
                 return
             else:
                 self.hard_links[st.st_ino, st.st_dev] = safe_path

+ 2 - 0
darc/test.py

@@ -92,6 +92,8 @@ class Test(unittest.TestCase):
         self.create_regual_file('dir2/file2', size=1024*80)
         x = xattr(os.path.join(self.input_path, 'file1'))
         x.set('user.foo', 'bar')
+        os.link(os.path.join(self.input_path, 'file1'), 
+                os.path.join(self.input_path, 'hardlink'))
         os.symlink('somewhere', os.path.join(self.input_path, 'link1'))
         os.mkfifo(os.path.join(self.input_path, 'fifo1'))
         self.darc('create', self.store_path + '::test', 'input')