From adc4e56b4e745bf93b17537a777f60e3113a878c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 4 Jan 2018 14:48:26 -0400 Subject: skip update warning when there's a remote named "upstream" --- src/Propellor/DotDir.hs | 9 +++++---- src/Propellor/Git.hs | 7 +++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Propellor/DotDir.hs b/src/Propellor/DotDir.hs index 200625e8..f62b38f8 100644 --- a/src/Propellor/DotDir.hs +++ b/src/Propellor/DotDir.hs @@ -379,8 +379,8 @@ checkRepoUpToDate = whenM (gitbundleavail <&&> dotpropellorpopulated) $ do -- 1 commit. So, trying to merge with it will result in lots of merge -- conflicts, since git cannot find a common parent commit. -- --- Instead, the upstream/master branch is updated by taking the --- upstream/master branch (which must be an old version of propellor, +-- Instead, the new upstream/master branch is updated by taking the +-- current upstream/master branch (which must be an old version of propellor, -- as distributed), and diffing from it to the current origin/master, -- and committing the result. This is done in a temporary clone of the -- repository, giving it a new master branch. That new branch is fetched @@ -388,9 +388,10 @@ checkRepoUpToDate = whenM (gitbundleavail <&&> dotpropellorpopulated) $ do -- yielding a new upstream/master branch. -- -- If there's no upstream/master, the user is not using the distrepo, --- so does nothing. +-- so do nothing. And, if there's a remote named "upstream", the user +-- must have set that up is not using the distrepo, so do nothing. updateUpstreamMaster :: String -> IO () -updateUpstreamMaster newref = do +updateUpstreamMaster newref = unlessM (hasRemote "upstream") $ do changeWorkingDirectory =<< dotPropellor go =<< catchMaybeIO getoldrev where diff --git a/src/Propellor/Git.hs b/src/Propellor/Git.hs index 1d81c157..10b88ddd 100644 --- a/src/Propellor/Git.hs +++ b/src/Propellor/Git.hs @@ -23,9 +23,12 @@ getCurrentGitSha1 branchref = takeWhile (/= '\n') <$> readProcess "git" ["show-ref", "--hash", branchref] hasOrigin :: IO Bool -hasOrigin = catchDefaultIO False $ do +hasOrigin = hasRemote "origin" + +hasRemote :: String -> IO Bool +hasRemote remotename = catchDefaultIO False $ do rs <- lines <$> readProcess "git" ["remote"] - return $ "origin" `elem` rs + return $ remotename `elem` rs hasGitRepo :: IO Bool hasGitRepo = doesFileExist ".git/HEAD" -- cgit v1.2.3