prepare for lazy loading

This commit is contained in:
Sebastian Sdorra
2012-07-04 10:00:41 +02:00
parent d53449945e
commit b9eb0aff5f
3 changed files with 57 additions and 4 deletions

View File

@@ -71,6 +71,11 @@ public class HgLogChangesetCommand extends AbstractCommand
*/
private static final byte[] CHANGESET_PATTERN = Utils.randomBytes();
/** Field description */
private static final String CHANGESET_LAZY_STYLE_PATH =
Utils.resourceAsFile("/sonia/scm/styles/changesets-lazy.style",
ImmutableMap.of("pattern", CHANGESET_PATTERN)).getPath();
/** Field description */
private static final String CHANGESET_EAGER_STYLE_PATH =
Utils.resourceAsFile("/sonia/scm/styles/changesets-eager.style",
@@ -141,6 +146,23 @@ public class HgLogChangesetCommand extends AbstractCommand
return this;
}
/**
* Method description
*
*
* @param files
*
* @return
*/
public List<Integer> loadRevisions(String... files)
{
cmdAppend("--style", CHANGESET_LAZY_STYLE_PATH);
HgInputStream stream = launchStream(files);
return loadRevisionsFromStream(stream);
}
/**
* Method description
*
@@ -203,9 +225,6 @@ public class HgLogChangesetCommand extends AbstractCommand
changeset.setId(nodeString);
// revision
in.revisionUpTo('\n');
String user = in.textUpTo('\n');
changeset.setAuthor(Person.toPerson(user));
@@ -275,6 +294,39 @@ public class HgLogChangesetCommand extends AbstractCommand
return changeset;
}
/**
* Method description
*
*
* @param stream
*
* @return
*/
private List<Integer> loadRevisionsFromStream(HgInputStream stream)
{
List<Integer> revisions = Lists.newArrayList();
try
{
while (stream.peek() != -1)
{
int rev = stream.revisionUpTo(' ');
if (rev >= 0)
{
revisions.add(rev);
}
}
}
catch (IOException ex)
{
throw new RuntimeIOException(ex);
}
return revisions;
}
/**
* Method description
*

View File

@@ -1,5 +1,5 @@
header = "%{pattern}"
changeset = "{node}{rev}\n{author}\n{date|hgdate}\n{branch}\n{parents}{tags}{file_adds}{file_mods}{file_dels}\n{desc}\0"
changeset = "{node}{author}\n{date|hgdate}\n{branch}\n{parents}{tags}{file_adds}{file_mods}{file_dels}\n{desc}\0"
tag = "t {tag}\n"
file_add = "a {file_add}\n"
file_mod = "m {file_mod}\n"

View File

@@ -0,0 +1 @@
changeset = "{rev} "