public MetaInfo(int build)
 {
     this.BuildNumber = build;
     this.CodeRepo = new MetaGitInfo();
     this.SubRepos = new List<MetaGitInfo>();
 }
        public void CreateMetaInfo()
        {
            BuildMeta = new MetaInfo(0);

            // find the build number based on main git repo and all its sub modules
            int buildnumber = 0;
            string GitFolder = CombinePaths(DLCDir, GIT_FOLDER_NAME);
            if (DirectoryExists(GitFolder))
            {
                using (var repo = new LibGit2Sharp.Repository(GitFolder))
                {
                    MetaGitInfo gitinfo = new MetaGitInfo();
                    gitinfo.Name = ".";
                    gitinfo.CommitCount = repo.Commits.Count();
                    gitinfo.SHA = repo.Commits.First().Id.ToString();
                    gitinfo.SHAShort = repo.Commits.First().Id.ToString(7);

                    buildnumber += gitinfo.CommitCount;
                    BuildMeta.CodeRepo = gitinfo;

                    foreach (var submodule in repo.Submodules)
                    {
                        string SubFolder = CombinePaths(DLCDir, submodule.Path);
                        if (DirectoryExists(SubFolder))
                        {
                            using (var subrepo = new LibGit2Sharp.Repository(SubFolder))
                            {
                                MetaGitInfo subgitinfo = new MetaGitInfo();
                                subgitinfo.Name = submodule.Name;
                                subgitinfo.CommitCount = subrepo.Commits.Count();
                                subgitinfo.SHA = submodule.HeadCommitId.ToString();
                                subgitinfo.SHAShort = submodule.HeadCommitId.ToString(7);

                                buildnumber += subgitinfo.CommitCount;
                                BuildMeta.SubRepos.Add(subgitinfo);
                            }
                        }
                    }
                }
            }

            BuildMeta.BuildNumber = buildnumber;
        }