Merged revisions 83993 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83993 | eric.araujo | 2010-08-14 04:30:34 +0200 (sam., 14 août 2010) | 2 lines

  Use a marker in generated MANIFEST files, don't touch files without it. Fixes #8688.
........
diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py
index f51d72f..818a452 100644
--- a/Lib/distutils/command/sdist.py
+++ b/Lib/distutils/command/sdist.py
@@ -335,8 +335,21 @@
         by 'add_defaults()' and 'read_template()') to the manifest file
         named by 'self.manifest'.
         """
-        self.execute(file_util.write_file,
-                     (self.manifest, self.filelist.files),
+        if os.path.isfile(self.manifest):
+            fp = open(self.manifest)
+            try:
+                first_line = fp.readline()
+            finally:
+                fp.close()
+
+            if first_line != '# file GENERATED by distutils, do NOT edit\n':
+                log.info("not writing to manually maintained "
+                         "manifest file '%s'" % self.manifest)
+                return
+
+        content = self.filelist.files[:]
+        content.insert(0, '# file GENERATED by distutils, do NOT edit')
+        self.execute(file_util.write_file, (self.manifest, content),
                      "writing manifest file '%s'" % self.manifest)
 
     def read_manifest(self):