मुझे एक दोषपूर्ण प्रोग्राम / सुविधा को संशोधित करना है, जो org.eclipse.jgit का एक एक्सटेंशन है
प्रोग्राम PushResultDialog की करीबी विधि को ओवरराइड करता है और एक विधि में रिपॉजिटरी को पास करता है। यहां मैं उस शाखा को ढूंढना चाहता हूं जो वास्तव में धकेल दिया / जाँच की गई थी। मुझे केवल दिलचस्पी है अगर मास्टर, अगर मैं कुछ भी नहीं करना चाहता हूँ। अन्यथा मुझे धकेलित फाइलों की सूची की आवश्यकता है।
सबसे पहले कार्यक्रम इस तरह दिखता है:
head = repo.resolve (constants.HEAD); RevCommit commit = rw.parseCommit (सिर); PersonIdent committerIdent = commit.getCommitterIdent (); SCommitter = committerIdent.getName (); स्ट्रिंग sBranch = "?"; (नक्शा। प्रविष्टि & lt; स्ट्रिंग, रेफ़ & gt; ई: रेपो.गेट सभी आरिफ्स ()। प्रवेशसैट ()) {if (ई.जे.के.के.ई.)। शुरू होता है (स्थिर। आर_एएचडीएडीएस)) {Ref ref = e.getValue (); अगर (rw.isMergedInto (प्रतिबद्ध, rw.parseCommit (ref.getObjectId ()))) {sTemp = ref.getName ()); Int i = sTemp.lastIndexOf ('/'); यदि (i == -1) जारी रहेगा; SBranch = sTemp.substring (i + 1); System.out.println ("रिफ" + sBranch + "& lt; इसमें & gt;" + प्रतिबद्ध); अगर (sBranch.equalsIgnoreCase ("मास्टर")) {ब्रेक; } और {वापसी; }}}} RevCommit parent = rw.parseCommit (commit.getParent (0) .getId ()); DiffFormatter df = नया DiffFormatter (DisabledOutputStream.INSTANCE); df.setRepository (रेपो); df.setDiffComparator (RawTextComparator.DEFAULT); df.setDetectRenames (सही); सूची के & lt; DiffEntry & gt; Diffs = df.scan (parent.getTree (), commit.getTree ()); के लिए (DiffEntry diff: diffs) {sTemp = diff.getNewPath (); pushedObjects.add (sTemp); }
अब .. यह काम तब तक चलता है जब ग्रहण में वर्कफ़्लो सिर्फ "चेकआउट मास्टर" "पुल" "मर्ज शाखा" "पुश"
कोई भी अन्य आदेश सेट में शाखाओं के आदेश के साथ गड़बड़ लगता है, और यह "और" इस पर ठोकर खाई:
यदि (sBranch.equalsIgnoreCase ("मास्टर")) {ब्रेक; } और {वापसी; }
सवाल है: क्या सही शाखा चुनने के लिए कोई आसान तरीका है?
ठीक है, मुझे लगता है कि मैं बस सेट में हेड को देख सकता हूँ:
e.getKey ()। BeginWith (constants.HEAD)
No comments:
Post a Comment