Ejemplo n.º 1
0
        public bool TryGetCopiedCommit(Commit copiedFrom, Repository targetRepo, out Commit?commit)
        {
            var hash = CommitMessageUtil.ReadBasedirCommitNameFromMessage(copiedFrom.Message);

            if (hash != null)
            {
                // TODO: make option: remote name
                commit = targetRepo.Lookup <Commit>(hash);
                if (commit != null)
                {
                    return(true);
                }
                CommandGit.ShallowFetch(targetRepo, "origin", hash.Sha);
                commit = targetRepo.Lookup <Commit>(hash);
                if (commit != null)
                {
                    return(true);
                }
                return(false);
            }
            else
            {
                commit = RepositoryUtil.GetAllCommits(targetRepo)
                         .FirstOrDefault(copied =>
                                         CommitMessageUtil.ReadSubdirCommitNameFromMessage(copied.Message, _copyOptions.DirInSrcs) ==
                                         copiedFrom.Id);
                if (commit != null)
                {
                    return(true);
                }

                return(false);
            }
        }
 public bool TryGetCopiedCommit(Commit copiedFrom, Repository targetRepo, out Commit?commit)
 {
     commit = RepositoryUtil.GetAllCommits(targetRepo)
              .FirstOrDefault(copied =>
                              CommitMessageUtil.ReadBasedirCommitNameFromMessage(copied.Message) == copiedFrom.Id);
     return(commit != null);
 }