Kiln » gitkiln Read More
Clone URL:  
Pushed to one repository · View In Graph Contained in master

add hg-sha command

Changeset f8151ea4ffc6

Parent cf5e6ffac8b7

by Profile picture of User 12Benjamin Pollack <benjamin@fogcreek.com>

Changes to 2 files · Browse files at f8151ea4ffc6 Showing diff from parent cf5e6ffac8b7 Diff from another changeset...

Change 1 of 2 Show Entire File kiln/​api.go Stacked
 
54
55
56
 
 
 
 
 
 
 
 
 
 
 
57
58
59
 
135
136
137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
@@ -54,6 +54,17 @@
  Creator Person `json:"personCreator"`   DefaultPermission string `json:"permissionDefault"`   Branches []Repo `json:"repoBranches"` +} + +type Changeset struct { + Rev string `json:"rev"` + Author string `json:"sAuthor"` + Description string `json:"sDescription"` + Bugs []int `json:"ixBugs"` + Reviews []int `json:"ixReviews"` + Vcs string `json:"vcs"` + MercurialSHAs []string `json:"revsHg"` + GitSHAs []string `json:"revsGit"`  }    type Person struct { @@ -135,3 +146,37 @@
  }   return  } + +func (k *Client) MercurialEquivalent(repoPath, commit string) (hgSHAs []string, err error) { + var repoId int64 + var resp []byte + var fullSHA string + + repoId, err = k.IdForRepo(repoPath) + if err != nil { + return + } + fullSHA, err = k.ResolveSHA(commit) + if err != nil { + return + } + resp, err = k.apiGet(fmt.Sprintf("Repo/%v/History", repoId), apiParams{"revs": fullSHA}) + if err != nil { + return + } + var errors ApiErrors + if err = json.Unmarshal(resp, &errors); err == nil { + if apiErrors, _ := errors["errors"]; len(apiErrors) > 0 { + err = fmt.Errorf("failed: %v", apiErrors[0].Description) + } + } + var changesets []Changeset + if err = json.Unmarshal(resp, &changesets); err != nil { + err = fmt.Errorf("unable to process response: %v", err) + } else { + for _, changeset := range changesets { + hgSHAs = append(hgSHAs, changeset.MercurialSHAs...) + } + } + return +}
Change 1 of 2 Show Entire File main.go Stacked
 
34
35
36
 
 
 
37
38
39
 
229
230
231
 
 
 
 
 
 
 
 
 
 
 
232
233
234
 
34
35
36
37
38
39
40
41
42
 
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
@@ -34,6 +34,9 @@
  to your remotes via "gitkiln add-remote"   filehistory <file> [<file2> [...]]   show the history for one or more files in Kiln + hg-sha <sha> [<sha> [...]] + show the equivalent Mercurial SHAs corresponding to the + given Git SHAs   history   go to the history of this repository in Kiln   logout @@ -229,6 +232,17 @@
  }   case "help":   showHelp() + case "hg-sha": + if ensureArgs(3, "you must provide at least one commit SHA to lookup") { + requireAuth(k) + for _, commit := range os.Args[2:len(os.Args)] { + if equivalent, err := k.MercurialEquivalent(repoPath, commit); err == nil { + fmt.Printf("%v: %v\n", commit, equivalent) + } else { + fmt.Printf("%v: <none found> (%v)\n", commit, err) + } + } + }   case "history":   k.BrowseHistory(repoPath)   case "logout":