Exemple #1
0
        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");
                }
            }
        }
Exemple #2
0
 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);
 }