Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
090ec30dfa | ||
|
|
f01f08ddcb | ||
|
|
8884ce8009 | ||
|
|
6d03ae25b0 | ||
|
|
75f885724b | ||
|
|
b2d8652041 | ||
|
|
c25d456acd |
@@ -1,79 +0,0 @@
|
|||||||
param(
|
|
||||||
[string]$Remote = "gitea",
|
|
||||||
[string]$MainBranch = "main"
|
|
||||||
)
|
|
||||||
|
|
||||||
$ErrorActionPreference = "Stop"
|
|
||||||
|
|
||||||
# Verify remote exists.
|
|
||||||
$remotes = git remote
|
|
||||||
if ($remotes -notcontains $Remote) {
|
|
||||||
throw "Git remote '$Remote' does not exist. Available remotes: $($remotes -join ', ')"
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "Using remote: $Remote"
|
|
||||||
Write-Host "Canonical branch: $MainBranch"
|
|
||||||
|
|
||||||
# Update remote references.
|
|
||||||
git fetch $Remote --prune
|
|
||||||
|
|
||||||
# Update local main from the selected remote.
|
|
||||||
git switch $MainBranch
|
|
||||||
git pull --ff-only $Remote $MainBranch
|
|
||||||
|
|
||||||
# Get all branches on this specific remote.
|
|
||||||
$remotePrefix = "$Remote/"
|
|
||||||
|
|
||||||
$branches = git for-each-ref `
|
|
||||||
--format="%(refname:short)" `
|
|
||||||
"refs/remotes/$Remote" |
|
|
||||||
Where-Object {
|
|
||||||
$_ -ne "$Remote/$MainBranch" -and
|
|
||||||
$_ -ne "$Remote/HEAD"
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($remoteBranch in $branches) {
|
|
||||||
# Remove "<remote>/" prefix while preserving branch names such as
|
|
||||||
# agent/foo/bar.
|
|
||||||
$branch = $remoteBranch.Substring($remotePrefix.Length)
|
|
||||||
|
|
||||||
Write-Host ""
|
|
||||||
Write-Host "Updating $branch..."
|
|
||||||
|
|
||||||
# Check whether the local branch already exists.
|
|
||||||
git show-ref --verify --quiet "refs/heads/$branch"
|
|
||||||
|
|
||||||
if ($LASTEXITCODE -eq 0) {
|
|
||||||
git switch $branch
|
|
||||||
|
|
||||||
# Make sure the local branch reflects the latest remote branch
|
|
||||||
# before modifying the instruction files.
|
|
||||||
git pull --ff-only $Remote $branch
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
git switch --track -c $branch "$Remote/$branch"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Force these files to exactly match canonical main.
|
|
||||||
git restore `
|
|
||||||
--source "$MainBranch" `
|
|
||||||
-- AGENTS.md PROJECT_GOAL.md
|
|
||||||
|
|
||||||
git add AGENTS.md PROJECT_GOAL.md
|
|
||||||
|
|
||||||
# Commit only when one of the files actually changed.
|
|
||||||
git diff --cached --quiet
|
|
||||||
|
|
||||||
if ($LASTEXITCODE -ne 0) {
|
|
||||||
git commit -m "Sync agent instructions from $MainBranch"
|
|
||||||
git push $Remote $branch
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Host "Already up to date."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
git switch $MainBranch
|
|
||||||
|
|
||||||
Write-Host ""
|
|
||||||
Write-Host "Finished synchronizing AGENTS.md and PROJECT_GOAL.md."
|
|
||||||
Reference in New Issue
Block a user