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

take advantage of multiple-value functionality to bulk fetch hg-shas

Changeset 00a42bf04180

Parent fbdf62764ba0

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

Changes to 2 files · Browse files at 00a42bf04180 Showing diff from parent fbdf62764ba0 Diff from another changeset...

Change 1 of 3 Show Entire File kiln/​api.go Stacked
 
3
4
5
 
6
7
8
 
147
148
149
150
 
151
152
153
154
155
156
157
158
159
160
161
162
163
 
164
165
166
 
174
175
176
 
177
178
 
179
180
181
 
3
4
5
6
7
8
9
 
148
149
150
 
151
152
153
 
154
155
156
157
158
 
 
 
 
 
159
160
161
162
 
170
171
172
173
174
 
175
176
177
178
@@ -3,6 +3,7 @@
 import (   "encoding/json"   "fmt" + "net/url"   "strconv"   "strings"  ) @@ -147,20 +148,15 @@
  return  }   -func (k *Client) MercurialEquivalent(repoPath, commit string) (hgSHAs []string, err error) { +func (k *Client) MercurialEquivalents(repoPath string, commits []string) (equivalents map[string][]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}) + resp, err = k.apiRequest(fmt.Sprintf("Repo/%v/History", repoId), url.Values{"revs": commits}, "GET")   if err != nil {   return   } @@ -174,8 +170,9 @@
  if err = json.Unmarshal(resp, &changesets); err != nil {   err = fmt.Errorf("unable to process response: %v", err)   } else { + equivalents = make(map[string][]string)   for _, changeset := range changesets { - hgSHAs = append(hgSHAs, changeset.MercurialSHAs...) + equivalents[changeset.GitSHAs[0]] = changeset.MercurialSHAs   }   }   return
Change 1 of 1 Show Entire File main.go Stacked
 
235
236
237
 
238
239
240
 
 
241
242
 
 
 
 
 
 
 
 
 
243
244
245
 
235
236
237
238
239
 
 
240
241
242
 
243
244
245
246
247
248
249
250
251
252
253
254
@@ -235,11 +235,20 @@
  case "hg-sha":   if ensureArgs(3, "you must provide at least one commit SHA to lookup") {   requireAuth(k) + commits := make([]string, 0, len(os.Args)-2)   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) + if fullSHA, err := k.ResolveSHA(commit); err != nil { + fmt.Fprintf(os.Stderr, "WARNING: Unable to resolve %v\n", commit)   } else { - fmt.Printf("%v: <none found> (%v)\n", commit, err) + commits = append(commits, fullSHA) + } + } + equivalents, err := k.MercurialEquivalents(repoPath, commits) + if err != nil { + fmt.Printf("Unable to look up Mercurial SHAs: %v\n", err) + } else { + for gitSHA, hgSHAs := range equivalents { + fmt.Printf("Git[%v]: Hg%v\n", gitSHA, hgSHAs)   }   }   }