Exemplo n.º 1
0
        private void RemoveFile(string name)
        {
            FileEntry        r    = RevTable[name];
            FileRevisionData data = new FileRevisionData()
            {
                action = RevisionAction.REMOVE,
                crc    = 0,
                size   = 0,
            };

            r.revisions[openRev.name] = data;
        }
Exemplo n.º 2
0
        private void ModifyFile(string name, ulong crc, int size)
        {
            try
            {
                FileEntry r       = RevTable[name];
                Revision  latest  = (openRev == null) ? LatestRev() : openRev;
                string    closest = "";
                try
                {
                    closest = r.revisions.Keys.Where(t => GetRevisionByName(t).creation < latest.creation).OrderByDescending(t => GetRevisionByName(t).creation).First();
                }
                catch (InvalidOperationException e)
                {
                    Console.WriteLine(e.ToString());
                }
                //CRC or size are different.
                if (r.revisions[closest].crc != crc || r.revisions[closest].size != size)
                {
                    //Mark interesting files
                    string[] itTags = openRev.GetITTags();
                    foreach (string s in itTags)
                    {
                        if (name.Contains(s, StringComparison.OrdinalIgnoreCase))
                        {
                            openRev.MarkInterestingFile(name);
                        }
                    }


                    FileRevisionData data = new FileRevisionData()
                    {
                        action = RevisionAction.MODIFY,
                        crc    = crc,
                        size   = size,
                    };
                    r.revisions[openRev.name] = data;
                }
                RevTable[name].touched = true;
            }
            catch (KeyNotFoundException e)
            {
                throw new Exception(e.Message + " , " + name);
            }
        }
Exemplo n.º 3
0
 private void RemoveFile(string name)
 {
     FileEntry r = RevTable[name];
     FileRevisionData data = new FileRevisionData()
     {
         action = RevisionAction.REMOVE,
         crc = 0,
         size = 0,
     };
     r.revisions[openRev.name] = data;
 }
Exemplo n.º 4
0
        private void ModifyFile(string name, ulong crc, int size)
        {
            try
            {
                FileEntry r = RevTable[name];
                Revision latest = (openRev == null) ? LatestRev() : openRev;
                string closest = "";
                try
                {
                    closest = r.revisions.Keys.Where(t => GetRevisionByName(t).creation < latest.creation).OrderByDescending(t => GetRevisionByName(t).creation).First();
                }
                catch (InvalidOperationException e)
                {
                    Console.WriteLine(e.ToString());
                }
                //CRC or size are different.
                if (r.revisions[closest].crc != crc || r.revisions[closest].size != size)
                {
                    //Mark interesting files
                    string[] itTags = openRev.GetITTags();
                    foreach (string s in itTags)
                    {
                        if (name.Contains(s, StringComparison.OrdinalIgnoreCase)) openRev.MarkInterestingFile(name);
                    }

                    FileRevisionData data = new FileRevisionData()
                    {
                        action = RevisionAction.MODIFY,
                        crc = crc,
                        size = size,
                    };
                    r.revisions[openRev.name] = data;

                }
                RevTable[name].touched = true;
            }
            catch (KeyNotFoundException e)
            {
                throw new Exception(e.Message + " , " + name);
            }
        }