public void NapraviIUpisiRazlike(string referencaNaRepozitorijum, string nazivCommita, string nazivOriginalnogFajla, XElement razlikeIzNarednogCommita, XElement razlikeIzPrvogCommita, string nazivAutora, string putanjaDoFajlaKojiSadrziRazlike, string sadrzajPrveRevizije) { string[] nazivOriginalnogSplitovan = nazivOriginalnogFajla.Split('.'); string[] listaDirektorijuma = Directory.GetDirectories(referencaNaRepozitorijum).Select(Path.GetFileName).ToArray(); IEnumerable <XElement> redoviSaRazlikamaPrviCommit = razlikeIzPrvogCommita.Elements("Red"); IEnumerable <XElement> redoviSaRazlikamaNaredniCommit = razlikeIzNarednogCommita.Elements("Red"); IEnumerator <XElement> iteratorKrozNarediCommitSaRazlikama = redoviSaRazlikamaNaredniCommit.GetEnumerator(); string konacnaVerzija = ""; string[] charSeparators = new string[] { "\r\n" }; string[] splitovanSadrzajPrveRevizije = sadrzajPrveRevizije.Split(charSeparators, StringSplitOptions.None); for (int i = 1; i < listaDirektorijuma.Length; i++) { if (listaDirektorijuma[i].Equals(nazivCommita)) //znaci da sam dosao do trenutnog commita u kojem treba da sacuvam razlike sa prethodnim verzijama { string metaPodaci = nazivOriginalnogSplitovan[0] + "_metaPodaci" + '.' + nazivOriginalnogSplitovan[1]; m_CQRSWrite.napraviMetaPodatke(Path.Combine(Path.Combine(referencaNaRepozitorijum, listaDirektorijuma[i]), metaPodaci), nazivAutora, DateTime.Now, nazivCommita, Int32.Parse(listaDirektorijuma[i].Substring(1))); if (redoviSaRazlikamaPrviCommit.Count() > redoviSaRazlikamaNaredniCommit.Count()) { ZameniVisakElemenataIzC1SaPraznimStringom(redoviSaRazlikamaPrviCommit, redoviSaRazlikamaNaredniCommit, putanjaDoFajlaKojiSadrziRazlike); return; } else { PrimeniKonkretneRazlike(redoviSaRazlikamaPrviCommit, redoviSaRazlikamaNaredniCommit, putanjaDoFajlaKojiSadrziRazlike); return; } } else { if (i > 1) { splitovanSadrzajPrveRevizije = konacnaVerzija.Split(charSeparators, StringSplitOptions.None); } konacnaVerzija = ProdjiKrozCommiteIPrimeniRazlike(nazivOriginalnogFajla, referencaNaRepozitorijum, splitovanSadrzajPrveRevizije, listaDirektorijuma, redoviSaRazlikamaPrviCommit, i); XElement promenljivaZaResetovanjeSadrzajaPrvogCommita = new XElement("Fajl1"); razlikeIzPrvogCommita = promenljivaZaResetovanjeSadrzajaPrvogCommita; splitovanSadrzajPrveRevizije = konacnaVerzija.Split(charSeparators, StringSplitOptions.None); foreach (string razlike in splitovanSadrzajPrveRevizije) { XElement redSaRazlikama = new XElement("Red"); foreach (string konkretnaRazlika in razlike.Split(' ')) { redSaRazlikama.Add(new XElement("rec", konkretnaRazlika)); } razlikeIzPrvogCommita.Add(redSaRazlikama); } redoviSaRazlikamaPrviCommit = razlikeIzPrvogCommita.Elements("Red"); } } }
public void NapraviMeta(ICQRSWrite write, string nazivAutora, string nazivOriginalnogSplitovan, string fajlURepozitorijumu, string direktorijumRevizije, string razlikaUReviziji) { write.napraviMetaPodatke(Path.Combine(direktorijumRevizije, nazivOriginalnogSplitovan + "_metaPodaci" + ".txt"), nazivAutora, DateTime.Now, "C1", 1); write.NapraviPrvuReviziju(fajlURepozitorijumu, razlikaUReviziji); }