A Commit references a tree which is a copy of the working directory
Inheritance: GitObject
コード例 #1
0
ファイル: Branch.cs プロジェクト: schacon/dotgit
        internal override void Deserialize()
        {
            if (!Utility.IsValidSHA(SHA))
                throw new ArgumentException("Need valid sha", "contents");

            _commit = Repo.Storage.GetObject<Commit>(SHA);
        }
コード例 #2
0
ファイル: RepositoryTests.cs プロジェクト: schacon/dotgit
 private void WalkHistory(Commit commit)
 {
     if (commit.HasParents)
     {
         foreach(Commit parent in commit.Parents)
             WalkHistory(parent);
     }
 }
コード例 #3
0
ファイル: Browser.xaml.cs プロジェクト: henon/dotgit
 //private void SelectConfiguration(object obj)
 //{
 //    if (obj is Entry)
 //    {
 //        var entry = obj as dotGit.Config.Entry;
 //        m_config_name.Content = entry.FullName;
 //        if (entry.Value != null)
 //            m_config_value.Text = entry.Value;
 //    }
 //}
 private void DisplayCommit(Commit commit, string info)
 {
     if (commit == null)
         return;
     var list = commit.Ancestors.ToList();
     list.Insert(0, commit);
     m_commits.ItemsSource = list;
     m_commits.SelectedIndex = 0;
     m_commit_title.Text = "Commit history for " + info;
 }
コード例 #4
0
ファイル: Head.cs プロジェクト: schacon/dotgit
        private Commit _commit = null; // Will only be set if HEAD is detached

        #endregion Fields

        #region Constructors

        internal Head(Repository repo)
        {
            Repo = repo;

            string headContents = File.ReadAllText(Path.Combine(Repo.GitDir.FullName, @"HEAD")).Trim();

            if (!Utility.IsValidSHA(headContents))
            { // HEAD content does not contain valid SHA. Will assume format: 'refs: path/to/ref'

                string path = headContents.Split(' ').Last().Replace('/', Path.DirectorySeparatorChar).Trim();

                Branch = Repo.Branches[Path.GetFileName(path)];
            }
            else
            {
                _commit = Repo.Storage.GetObject<Commit>(headContents);
            }
        }
コード例 #5
0
ファイル: Browser.xaml.cs プロジェクト: henon/dotgit
 private void SelectCommit(Commit commit)
 {
     if (commit == null)
         return;
     m_tree.ItemsSource = commit.Tree.Children;
     m_tree_title.Text = "Repository tree of Commit " + commit.SHA;
     //(m_tree.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem).IsExpanded = true;
 }
コード例 #6
0
ファイル: Commit.cs プロジェクト: henon/dotgit
 private static void GetAncestorsRecursive(Commit commit, HashSet<Commit> ancestors)
 {
     if (commit.Parents == null)
       return;
       foreach (var parent in commit.Parents)
       {
       if (ancestors.Contains(parent))
           continue;
       ancestors.Add(parent);
       GetAncestorsRecursive(parent, ancestors);
       }
 }
コード例 #7
0
ファイル: Commit.cs プロジェクト: henon/dotgit
 /// <summary>
 /// Compares commit to other commit on SHA
 /// </summary>
 /// <param name="obj">The other commit to compare with</param>
 /// <returns>Boolean indicating this object is equal to <paramref name="obj"/></returns>
 public bool Equals(Commit c)
 {
     return String.Equals(c.SHA, SHA);
 }