本文整理匯總了Golang中github.com/google/git-appraise/repository.Repo.GetRepoStateHash方法的典型用法代碼示例。如果您正苦於以下問題:Golang Repo.GetRepoStateHash方法的具體用法?Golang Repo.GetRepoStateHash怎麽用?Golang Repo.GetRepoStateHash使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/google/git-appraise/repository.Repo
的用法示例。
在下文中一共展示了Repo.GetRepoStateHash方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: mirrorRepoToReview
func mirrorRepoToReview(repo repository.Repo, tool review_utils.Tool, syncToRemote bool) {
if syncToRemote {
repo.PullNotes("origin", "refs/notes/devtools/*")
}
stateHash, err := repo.GetRepoStateHash()
if err != nil {
log.Fatal(err)
}
if processedStates[repo.GetPath()] != stateHash {
log.Print("Mirroring repo: ", repo)
for _, r := range review.ListAll(repo) {
reviewJson, err := r.GetJSON()
if err != nil {
log.Fatal(err)
}
log.Println("Mirroring review: ", reviewJson)
existingComments[r.Revision] = r.Comments
reviewDetails, err := r.Details()
if err == nil {
tool.EnsureRequestExists(repo, *reviewDetails)
}
}
openReviews[repo.GetPath()] = tool.ListOpenReviews(repo)
processedStates[repo.GetPath()] = stateHash
tool.Refresh(repo)
}
ReviewLoop:
for _, phabricatorReview := range openReviews[repo.GetPath()] {
if reviewCommit := phabricatorReview.GetFirstCommit(repo); reviewCommit != "" {
log.Println("Processing review: ", reviewCommit)
r, err := review.GetSummary(repo, reviewCommit)
if err != nil {
log.Fatal(err)
} else if r == nil {
log.Printf("Skipping unknown review %q", reviewCommit)
continue ReviewLoop
}
revisionComments := existingComments[reviewCommit]
log.Printf("Loaded %d comments for %v\n", len(revisionComments), reviewCommit)
for _, c := range phabricatorReview.LoadComments() {
if !hasOverlap(c, revisionComments) {
// The comment is new.
note, err := c.Write()
if err != nil {
log.Fatal(err)
}
log.Printf("Appending a comment: %s", string(note))
repo.AppendNote(comment.Ref, reviewCommit, note)
} else {
log.Printf("Skipping '%v', as it has already been written\n", c)
}
}
}
}
if syncToRemote {
if err := repo.PushNotes("origin", "refs/notes/devtools/*"); err != nil {
log.Printf("Failed to push updates to the repo %v: %v\n", repo, err)
}
}
}