Index: cvs2svn_lib/property_setters.py =================================================================== --- cvs2svn_lib/property_setters.py (Revision 5381) +++ cvs2svn_lib/property_setters.py (Arbeitskopie) @@ -64,9 +64,25 @@ def set_properties(self, cvs_file): if cvs_file.executable: - self.maybe_set_property(cvs_file, 'svn:executable', '*') + logger.verbose("executable file found: %s" % (cvs_file.cvs_path,)) + if cvs_file.cvs_path.startswith('Tools/') or cvs_file.cvs_path.startswith('CVSROOT/'): + logger.verbose("svn:executable property set") + self.maybe_set_property(cvs_file, 'svn:executable', '*') +class FreebsdPropertySetter(FilePropertySetter): + """Set svn:keywords=FreeBSD=%H in file contains $FreeBSD. + Set fbsd:nokeywords=yes if not.""" + + def set_properties(self, cvs_file): + if (open(cvs_file.rcs_path, 'r').read().find('$FreeBSD$') == -1): + self.maybe_set_property(cvs_file, 'fbsd:nokeywords', 'yes') + logger.verbose("fbsd:nokeywords set") + else: + self.maybe_set_property(cvs_file, 'svn:keywords', 'FreeBSD=%H') + logger.verbose("svn:keywords FreeBSD set") + + class DescriptionPropertySetter(FilePropertySetter): """Set the cvs:description property based on cvs_file.description.""" Index: cvs2svn_lib/keyword_expander.py =================================================================== --- cvs2svn_lib/keyword_expander.py (Revision 5381) +++ cvs2svn_lib/keyword_expander.py (Arbeitskopie) @@ -62,6 +62,11 @@ def date(self): return time.strftime(self.date_fmt, time.gmtime(self.cvs_rev.timestamp)) + def freebsd(self): + return '%s %s %s %s Exp' % ( + self.source(), self.cvs_rev.rev, self.date(), self.author(), + ) + def header(self): return '%s %s %s %s Exp' % ( self.source(), self.cvs_rev.rev, self.date(), self.author(), @@ -105,7 +110,7 @@ return 'Exp' -_kws = 'Author|Date|Header|Id|Locker|Log|Name|RCSfile|Revision|Source|State' +_kws = 'FreeBSD' _kw_re = re.compile(r'\$(' + _kws + r'):[^$\n]*\$') _kwo_re = re.compile(r'\$(' + _kws + r')(:[^$\n]*)?\$')