mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 15:35:49 +01:00
prepare for lazy loading
This commit is contained in:
@@ -71,6 +71,11 @@ public class HgLogChangesetCommand extends AbstractCommand
|
|||||||
*/
|
*/
|
||||||
private static final byte[] CHANGESET_PATTERN = Utils.randomBytes();
|
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 */
|
/** Field description */
|
||||||
private static final String CHANGESET_EAGER_STYLE_PATH =
|
private static final String CHANGESET_EAGER_STYLE_PATH =
|
||||||
Utils.resourceAsFile("/sonia/scm/styles/changesets-eager.style",
|
Utils.resourceAsFile("/sonia/scm/styles/changesets-eager.style",
|
||||||
@@ -141,6 +146,23 @@ public class HgLogChangesetCommand extends AbstractCommand
|
|||||||
return this;
|
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
|
* Method description
|
||||||
*
|
*
|
||||||
@@ -203,9 +225,6 @@ public class HgLogChangesetCommand extends AbstractCommand
|
|||||||
|
|
||||||
changeset.setId(nodeString);
|
changeset.setId(nodeString);
|
||||||
|
|
||||||
// revision
|
|
||||||
in.revisionUpTo('\n');
|
|
||||||
|
|
||||||
String user = in.textUpTo('\n');
|
String user = in.textUpTo('\n');
|
||||||
|
|
||||||
changeset.setAuthor(Person.toPerson(user));
|
changeset.setAuthor(Person.toPerson(user));
|
||||||
@@ -275,6 +294,39 @@ public class HgLogChangesetCommand extends AbstractCommand
|
|||||||
return changeset;
|
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
|
* Method description
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
header = "%{pattern}"
|
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"
|
tag = "t {tag}\n"
|
||||||
file_add = "a {file_add}\n"
|
file_add = "a {file_add}\n"
|
||||||
file_mod = "m {file_mod}\n"
|
file_mod = "m {file_mod}\n"
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
changeset = "{rev} "
|
||||||
Reference in New Issue
Block a user