RFR: Add topological merge bot

Erik Duveblad via github.com duke at openjdk.java.net
Fri Aug 30 08:30:15 UTC 2019

On Thu, 29 Aug 2019 12:28:41 GMT, Jorn Vernee via github.com <duke at openjdk.java.net> wrote:

> This PR adds a bot that does a topological merge of the branches in a repo.
> The branches can declare a dependencies file, which lists the branches that they depend on. This bot will crawl the branches, collect the dependencies for each branch, and topologically sort them based on their dependencies. Following that it will attempt to merge each dependency into the dependent in this order (this is mainly done so that we get less merges/failures if one of the root merges fails).
> Branches that do not declare a dependency file implicitly depend on the master branch. Therefore the list of branches that the bot considers is passed in during configuration.
> ---
> Aside from that, it also fixes a minor problem with `Repository::clone` on Windows.
> ----------------
> Commits:
>  - 4a8f3610:	Added top bot module
> Pull request:
> https://git.openjdk.java.net/skara/pull/105
> Webrev:
> https://webrevs.openjdk.java.net/skara/105/webrev.00
> Patch:
> https://git.openjdk.java.net/skara/pull/105.diff
> Fetch command:
> git fetch https://git.openjdk.java.net/skara pull/105/head:pull/105

vcs/src/main/java/org/openjdk/skara/vcs/git/GitRepository.java line 307:

> 306: 
> 307:         try (var p = capture(cmd.toArray(String[]::new))) {
> 308:             await(p);

There is no need to do `cmd.toArray`, `capture` has an overload for `List<String>`

PR: https://git.openjdk.java.net/skara/pull/105

vcs/src/main/java/org/openjdk/skara/vcs/git/GitRepository.java line 299:

> 298:     @Override
> 299:     public void reset(Hash target, boolean hard) throws IOException {
> 300:         var cmd = new ArrayList<String>();

Did you add a unit test for `reset` in `RepositoryTests`?

PR: https://git.openjdk.java.net/skara/pull/105

More information about the skara-dev mailing list