Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgRemoteRepository.java @ 202:706bcc7cfee4
Basic test for HgIncomingCommand. Fix RepositoryComparator for cases when whole repository is unknown. Respect freshly initialized (empty) repositories in general.
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 26 Apr 2011 02:50:06 +0200 |
parents | 9b99d27aeddc |
children | 66fd2c73c56f |
comparison
equal
deleted
inserted
replaced
201:a736f42ed75b | 202:706bcc7cfee4 |
---|---|
301 throw new HgException(ex); | 301 throw new HgException(ex); |
302 } | 302 } |
303 } | 303 } |
304 | 304 |
305 /* | 305 /* |
306 * XXX need to describe behavior when roots arg is empty; our RepositoryComparator code currently returns empty lists when | |
307 * no common elements found, which in turn means we need to query changes starting with NULL nodeid. | |
308 * | |
306 * WireProtocol wiki: roots = a list of the latest nodes on every service side changeset branch that both the client and server know about. | 309 * WireProtocol wiki: roots = a list of the latest nodes on every service side changeset branch that both the client and server know about. |
307 * | 310 * |
308 * Perhaps, shall be named 'changegroup' | 311 * Perhaps, shall be named 'changegroup' |
309 | 312 |
310 * Changegroup: | 313 * Changegroup: |
314 * according to latter, bundleformat data is sent through zlib | 317 * according to latter, bundleformat data is sent through zlib |
315 * (there's no header like HG10?? with the server output, though, | 318 * (there's no header like HG10?? with the server output, though, |
316 * as one may expect according to http://mercurial.selenic.com/wiki/BundleFormat) | 319 * as one may expect according to http://mercurial.selenic.com/wiki/BundleFormat) |
317 */ | 320 */ |
318 public HgBundle getChanges(List<Nodeid> roots) throws HgException { | 321 public HgBundle getChanges(List<Nodeid> roots) throws HgException { |
319 StringBuilder sb = new StringBuilder(20 + roots.size() * 41); | 322 List<Nodeid> _roots = roots.isEmpty() ? Collections.singletonList(Nodeid.NULL) : roots; |
323 StringBuilder sb = new StringBuilder(20 + _roots.size() * 41); | |
320 sb.append("roots="); | 324 sb.append("roots="); |
321 for (Nodeid n : roots) { | 325 for (Nodeid n : _roots) { |
322 sb.append(n.toString()); | 326 sb.append(n.toString()); |
323 sb.append('+'); | 327 sb.append('+'); |
324 } | 328 } |
325 if (sb.charAt(sb.length() - 1) == '+') { | 329 if (sb.charAt(sb.length() - 1) == '+') { |
326 // strip last space | 330 // strip last space |