From 01edd186e9e363f32621ed89a60d328d8dde2c96 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 7 Aug 2024 13:11:06 -0400 Subject: [PATCH] update proxied exporttree=yes remote on receive of sync branch Since git-annex sync sends the sync branch first, and only displays the output of the push to the sync branch, this makes git-annex post-retrieve's output when updating the exported tree be visible when syncing. This also makes syncing with a non-bare repository still update the exported tree, even when the checked out branch is not able to be updated. The sync branch gets sent regardless. --- Command/PostReceive.hs | 4 +++- Command/Sync.hs | 1 + doc/todo/git-annex_proxies.mdwn | 3 --- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Command/PostReceive.hs b/Command/PostReceive.hs index 351ca50fa8..0eca65354f 100644 --- a/Command/PostReceive.hs +++ b/Command/PostReceive.hs @@ -22,6 +22,7 @@ import Git.Types import Git.Sha import qualified Git.Ref import Command.Export (filterExport, getExportCommit, seekExport) +import Command.Sync (syncBranch) import qualified Data.Set as S import qualified Data.ByteString as B @@ -59,7 +60,8 @@ proxyExportTree = do pushedbranches <- liftIO $ S.fromList . map snd . parseHookInput <$> B.hGetContents stdin - let waspushed = flip S.member pushedbranches + let waspushed b = S.member b pushedbranches + || S.member (syncBranch b) pushedbranches case filter (waspushed . Git.Ref.branchRef . fst . snd) rbs of [] -> return () rbs' -> forM_ rbs' $ \((r, b), _) -> go r b diff --git a/Command/Sync.hs b/Command/Sync.hs index 82f9826873..3478c2a683 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -28,6 +28,7 @@ module Command.Sync ( parseUnrelatedHistoriesOption, SyncOptions(..), OperationMode(..), + syncBranch, ) where import Command diff --git a/doc/todo/git-annex_proxies.mdwn b/doc/todo/git-annex_proxies.mdwn index 15c01e981d..6607280dc3 100644 --- a/doc/todo/git-annex_proxies.mdwn +++ b/doc/todo/git-annex_proxies.mdwn @@ -33,9 +33,6 @@ Planned schedule of work: * Working on `exportreeplus` branch which is groundwork for proxying to exporttree=yes special remotes. Need to merge it to master. -* `git-annex sync` hides output of git-annex post-retreive, which is a - problem when it's doing things that are expensive. - * Handle cases where a single key is used by multiple files in the exported tree. Need to download from the special remote in order to export multiple copies to it. (In particular, this is needed when using