2011-06-03 13 views
5

के बाद संशोधन जानकारी मेल नहीं खाती है मैं एक मौजूदा एससीसीएस भंडार को एसवीएन प्रारूप में परिवर्तित करने की कोशिश कर रहा हूं और मैं अनुशंसित sccs2svn पायथन स्क्रिप्ट का उपयोग कर रहा हूं।sccs2svn रूपांतरण

 
revision 8, today's date, today's author, comment = 'Automated keyword replacement' 
revision 7, date 5, today's author, comment = 'Automated property set' 
revision 6, today's date, author 5, comment 5 
revision 5, date 5, author 4, comment 4 
revision 4, date 4, author 3, comment 3 
revision 3, date 3, author 2, comment 2 
revision 2, date 2, author 1, comment 1 
revision 1, date 1, author 1, comment 1 

इससे पहले कि मैं कुछ विस्तृत sccs2svn की खुदाई शुरू: हालांकि, यह करने के लिए संशोधन जानकारी "फेरबदल" हो इस प्रकार प्रकट होता है:

SCCS PRT देता है:

 
revision 5, date 5, author 5, comment 5 
revision 4, date 4, author 4, comment 4 
revision 3, date 3, author 3, comment 3 
revision 2, date 2, author 2, comment 2 
revision 1, date 1, author 1, comment 1 

SVN लॉग देता है। पीई, क्या कोई इस समस्या से पहले आया है?

+1

यह टिप्पणी में एक और से एक बंद की तरह दिखता है लेखक फ़ील्ड क्या लेखक 2 और/या टिप्पणी 2 के बारे में विशेष रूप से smoethign है जो उन्हें उपयोग नहीं करेगा? – Pete

उत्तर

1

SonyaH सवाल में इस पोस्ट, यहाँ यह एक साफ जवाब के रूप में है:

वहाँ एक बंद-एक करके run() में त्रुटि है। यह कोड:

mergedVersions = [[versions[0]]] 
i = 0 
while i < len(versions): 
    if versions[i].match(mergedVersions[-1][-1]): 
     mergedVersions[-1].append(versions[i]) 
    else: 
     mergedVersions.append([versions[i]]) 
    i += 1 

बेहतर काम करता है अगर

mergedVersions = [[versions[0]]] 
for v in versions([1:]): 
    if v.match(mergedVersions[-1][-1]): 
     mergedVersions[-1].append(v) 
    else: 
     mergedVersions.append([v]) 

साथ ही साथ प्रतिस्थापित, SVNInterface कक्षा में _commit विधि एक समस्या थी। यह नवीनतम संशोधन संख्या (जैसा कि sccs2svn द्वारा ज्ञात है) पर दिनांक बदलता है, फिर उस संशोधन को करता है। दुर्भाग्य से sccs2svn, शून्य से इसके संशोधन संख्या में गिना जाता है, जबकि सबवर्सन 1. से गिना जाता है तो, अगर आप रिवर्स के रूप में सब कुछ इस प्रकार समारोह के आदेश कहता है अब से मेल खाता है:

def _commit(self, rev, date, txn, subpool): 
    svn_rev = repos.svn_repos_fs_commit_txn(self.repos_ptr, txn, subpool) 
    fs.change_rev_prop(self.fsob, svn_rev, core.SVN_PROP_REVISION_DATE, 
         date, subpool) 
    return svn_rev 
संबंधित मुद्दे