예제 #1
0
        private IEnumerable <GUIContent> GetIcons(FileStatus status, SubmoduleStatus submoduleStatus, bool isSubModule)
        {
            foreach (var s in gitOverlay.GetDiffTypeIcons(status, true))
            {
                yield return(s);
            }
            if (isSubModule)
            {
                yield return(gitOverlay.icons.submoduleIconSmall);

                if (submoduleStatus.HasFlag(SubmoduleStatus.WorkDirFilesModified))
                {
                    yield return(gitOverlay.icons.modifiedIconSmall);
                }
                if (submoduleStatus.HasFlag(SubmoduleStatus.WorkDirFilesUntracked))
                {
                    yield return(gitOverlay.icons.untrackedIconSmall);
                }
                if (submoduleStatus.HasFlag(SubmoduleStatus.WorkDirFilesIndexDirty))
                {
                    yield return(gitOverlay.icons.addedIconSmall);
                }
                if (submoduleStatus.HasFlag(SubmoduleStatus.WorkDirModified))
                {
                    yield return(GitGUI.GetTempContent(GitGUI.Textures.CollabPush));
                }
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            string repoRoot = Repository.Discover(Environment.CurrentDirectory) ??
                              throw new System.Exception("InitSubmodules must be run within a git repo.");

            using (Repository repo = new Repository(repoRoot))
            {
                foreach (Submodule submodule in repo.Submodules)
                {
                    SubmoduleStatus submoduleStatus = submodule.RetrieveStatus();
                    bool            needsInit       = submoduleStatus.HasFlag(SubmoduleStatus.WorkDirUninitialized);
                    if (needsInit)
                    {
                        repo.Submodules.Update(submodule.Name, new SubmoduleUpdateOptions
                        {
                            Init = true
                        });
                    }
                }
            }
        }