RFR: 2143: Support selective tags mirroring

Erik Duveblad ehelin at openjdk.org
Wed Jan 17 13:31:19 UTC 2024


On Wed, 17 Jan 2024 08:35:15 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> We need a way to mirror tags selectively. Here is how I think I want to solve this. We currently have
>> 
>> "branches": Is either a string of one branch pattern or an array of multiple branch patterns
>> "tags": Takes either "include" or "only", if value is "only", "branches" cannot also be set
>> 
>> Instead of trying to somehow bend the "tags" parameter into taking some kind of patterns, I want to introduce a new parameter "refspecs". The value is an array (or a single string for convenience). Each string constitutes a single refspec that will be given unmodified to a "git push" command (with a + for force if not already present). The configuration becomes a bit more verbose by using this format, but it's also much more powerful. It makes it possible to express more complex mappings using the mirror bot, which may very well be needed when we start using branches more actively.
>> 
>> When setting "refspecs", we do not accept either "branches" or "tags" in the same configuration.
>> 
>> We still pull everything to the local repository in the bot. The refspec is only applied to the push command. Keeping the local repo the same as the source repo reduced the risk of bot configs interfering with each other through conflicting configurations.
>
> vcs/src/main/java/org/openjdk/skara/vcs/git/GitRepository.java line 654:
> 
>> 652:     @Override
>> 653:     public void push(String refspec, URI uri, boolean force) throws IOException {
>> 654:         if (force && !refspec.equals("+")) {
> 
> Are you sure you did not mean 
> Suggestion:
> 
>         if (force && !refspec.beginsWith("+")) {
> 
> ?

I would have opted to just skip the `boolean force` parameter. If we are already entrusting the user to supply a correct refspec then they will probably know that they should prefix the refspec with a `+` if they want to force push.

-------------

PR Review Comment: https://git.openjdk.org/skara/pull/1600#discussion_r1455565650


More information about the skara-dev mailing list