You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6d194ff
Browse filesBrowse the repository at this point in the historyBrowse files
committed
Synchronize tags.
'gh repo sync' knows branches only, so a fork drifts behind its upstream in releases even while its branches are
current - 'ghdl/ghdl' has 46 tags, 'Paebbels/ghdl' has 19.
A configuration line gains an optional fourth field, colon separated, listing tag names or regular expressions:
'<upstream>=<fork>:<branches>[:<tagPatterns>]'. A line without it behaves exactly as before, and a line may carry
tag patterns without any branch. Patterns are matched against the whole tag name with 'grep -P', joined into one
alternation because GNU grep rejects several '-e' patterns together with '-P'.
A matching tag missing from the fork is created pointing at the same object. A tag that moved in the upstream
repository is reported as an error and left alone - rewriting it would discard whatever the fork's tag points at -
and the run continues. Tags are never deleted. 'created-tags' is a new output parameter.
Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
| `<upstream>` | `<organisation>/<repository>` | The repository the fork was created from. It's reported in the action's progress and error output, so it should name the real upstream. |
94
-
| `<fork>` | `<repository>` | The forked repository. No organisation or account, because that's the `target-organisation` parameter. |
95
-
| `<branches>` | `<branch>[,<branch>,...]` | Comma separated list of branches to synchronize. |
| `<upstream>` | `<organisation>/<repository>` | The repository the fork was created from. It's reported in the action's progress and error output, so it should name the real upstream. |
94
+
| `<fork>` | `<repository>` | The forked repository. No organisation or account, because that's the `target-organisation` parameter. |
95
+
| `<branches>` | `<branch>[,<branch>,...]` | Comma separated list of branches to synchronize. May be empty when tag patterns are given. |
96
+
| `<tagPatterns>` | `<pattern>[,<pattern>,...]` | *Optional.* Comma separated list of tag names or regular expressions. See [Tag Synchronization](#tag-synchronization). |
96
97
97
98
A line starting with `#` is a comment and skips that fork. Empty lines are ignored.
98
99
99
100
```
100
-
OSVVM/OSVVM=OSVVM:main,dev
101
+
OSVVM/OSVVM=OSVVM:main,dev:v\d+\.\d+.*
101
102
OSVVM/OSVVM-Scripts=OSVVM-Scripts:main,dev
102
103
OSVVM/AXI4=OSVVM-AXI4:main,dev
103
104
OSVVM/Ethernet=OSVVM-Ethernet:main
104
105
#OSVVM/AvalonST=OSVVM-AvalonST:main
105
106
```
106
107
107
-
Read for the `PLC2` namespace, those five lines synchronize `PLC2/OSVVM` (branches `main` and `dev`) from
108
-
`OSVVM/OSVVM`, `PLC2/OSVVM-Scripts` from `OSVVM/OSVVM-Scripts`, `PLC2/OSVVM-AXI4` from `OSVVM/AXI4`,
109
-
`PLC2/OSVVM-Ethernet` (branch `main` only) from `OSVVM/Ethernet`, and skip `PLC2/OSVVM-AvalonST`.
108
+
Read for the `PLC2` namespace, those five lines synchronize `PLC2/OSVVM` (branches `main` and `dev`, plus every tag
109
+
matching `v\d+\.\d+.*`) from `OSVVM/OSVVM`, `PLC2/OSVVM-Scripts` from `OSVVM/OSVVM-Scripts`, `PLC2/OSVVM-AXI4` from
110
+
`OSVVM/AXI4`, `PLC2/OSVVM-Ethernet` (branch `main` only) from `OSVVM/Ethernet`, and skip `PLC2/OSVVM-AvalonST`.
110
111
111
112
Both Unix and Windows line endings are accepted, and a missing final newline doesn't drop the last entry.
112
113
@@ -119,13 +120,16 @@ Every organisation becomes a collapsible group, and each fork reports the branch
0 commit comments