TL/DR: We merged git branch master
into production
and the resulting source code was different. Why?
Using an Azure DevOps Pull-Request we merged (FF) our master
branch (at commit 01785665a
) into production
, deployed production
to PROD and went home feeling sure that we'd achieved our goal of pushing staged and tested changes on master
to production. Imagine our surprise when we discover production is not identical to staging but has some old code.
How can 2 branches be merged and not be identical?? The last commit 01785665a
on master
has my latest changes and is correct but these changes are NOT in the merge commit of c1aa29bda
!?
Judging from the DevOps diagram below we did not merge in from master but some commit c503afc9
(from Apr 27) but perhaps Azure Devops has a confusing graphic (it's not clear which branches the vertical lines refer to). The other graphics show master 01785665a
being merged in.
Git is convinced that production is up to date with master: git merge master
(on production) => Already up to date
git log (production)
commit c1aa29bda... (HEAD -> production, origin/production)
Merge: 2095cbd 0178566
Date: Wed Jun 3 10:14:15 2020 +0000
R4 Release
git log (master)
commit 01785665a... (HEAD -> master, origin/master)
Merge: bdc6c56 a5e1d32
Date: Wed May 13 11:03:43 2020 +0000
Merged PR 13135: v1.6.6 ...
master
). But do you understand what it means to make a merge commit from those two commits? Maybe your expectations are wrong. – mattproduction
. Tell us what's in that file in 2095cbd and what's in that file in 0178566 and what's in the file in the outcome inproduction
and let's talk in specific terms about whyproduction
came out that way. – mattmaster
and copy them toproduction
so production is identical to master. Is merge the wrong tool for the job. Do you understand what I am trying to accomplish? namely: copy this "version" of the branch to another branch for later reference. – Marc