के साथ एक फ़ाइल के पिछले संस्करण कैसे प्राप्त करूं मैं libgit2sharp
उपयोग करने के लिए एक फ़ाइल के पिछले संस्करण प्राप्त करने के लिए कोशिश कर रहा हूँ। मैं काम करने वाली निर्देशिका को कम से कम पिछली स्थिति में बहाल करने के लिए पसंद करता हूं।मैं libgit2sharp
मेरे प्रारंभिक दृष्टिकोण, फ़ाइल मैं चाहता हूँ पर भी छिपा सकते, चेकआउट पथ की कोशिश एक स्ट्रिंग चर करने के लिए कि बचाने के लिए, फिर पॉप छिपाया जा रहा था। क्या पॉप को छिपाने का कोई तरीका है? मैं इसे आसानी से नहीं ढूंढ सकता।
using (var repo = new Repository(DirectoryPath, null))
{
var currentCommit = repo.Head.Tip.Sha;
var commit = repo.Commits.Where(c => c.Sha == commitHash).FirstOrDefault();
if (commit == null)
return null;
var sn = "Stash Name";
var now = new DateTimeOffset(DateTime.Now);
var diffCount = repo.Diff.Compare().Count();
if(diffCount > 0)
repo.Stashes.Add(new Signature(sn, "[email protected]", now), options: StashModifiers.Default);
repo.CheckoutPaths(commit.Sha, new List<string>{ path }, CheckoutModifiers.None, null, null);
var fileText = File.ReadAllText(path);
repo.CheckoutPaths(currentCommit, new List<string>{path}, CheckoutModifiers.None, null, null);
if(diffCount > 0)
; // stash Pop?
}
अगर वहाँ छिपाने की जगह का उपयोग करने से एक आसान तरीका है, वह भी महान काम करेगा: यहाँ कोड मैं अब तक राशि है।
धन्यवाद। किसी और के लिए बस एक नोट: विधि 'रिपोजिटरी। चेकआउटपैथ' जो @nulltoken उपयोग v0.13 में मौजूद नहीं है। लेकिन यह vNext शाखा में शामिल है। तो जब जारी किया गया, (या यदि आप vAlpha का उपयोग कर रहे हैं) यह पूरी तरह से काम करेगा। तब तक, आपको थोड़ा अलग हस्ताक्षर का उपयोग करके उन कॉल को दोबारा लिखना होगा। – Shlomo
इसके अलावा, एक महान पैकेज पर आपके काम के लिए धन्यवाद। बड़ी मदद – Shlomo
@ श्लोमो बहुत बहुत धन्यवाद! :) – nulltoken