How do I merge my own fork with updates from the main fork

Christopher Jones jonesc at hep.phy.cam.ac.uk
Sat Aug 24 12:28:26 UTC 2019


Hi,

If you have unstated changes, you have to stash them before rebasing.

That is why I suggested to use 

sudo port sync

as it handles all this for you. Under the hood it does

git pull —rebase —autostash origin master

assuming origin is the primary MacPorts repo.

Chris

> On 24 Aug 2019, at 12:38 pm, Gerben Wierda <gerben.wierda at rna.nl> wrote:
> 
> This was helpful, except that the rebase failed. There were changes. I tried to repair but failed.
> 
> Albus:macports-ports sysbh$ git fetch --all --prune
> Fetching origin
> Fetching upstream
> remote: Enumerating objects: 33, done.
> remote: Counting objects: 100% (33/33), done.
> remote: Compressing objects: 100% (5/5), done.
> remote: Total 20 (delta 12), reused 20 (delta 12), pack-reused 0
> Unpacking objects: 100% (20/20), done.
> From https://github.com/macports/macports-ports <https://github.com/macports/macports-ports>
>    f9f924a097b..a825aeb3efc  master     -> upstream/master
> Albus:macports-ports sysbh$ git status
> On branch master
> Your branch is up to date with 'origin/master'.
> 
> Changes not staged for commit:
>   (use "git add <file>..." to update what will be committed)
>   (use "git checkout -- <file>..." to discard changes in working directory)
> 
> 	modified:   net/nsd/Portfile
> 
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
> 
> 	net/nsd/%Portfile
> 	net/nsd/Portfile-gw-20190817
> 	net/nsd/Portfile.orig
> 	net/unbound/%Portfile
> 	net/unbound/Portfile-gw-20190817
> 	net/unbound/Portfile.orig
> 
> no changes added to commit (use "git add" and/or "git commit -a")
> Albus:macports-ports sysbh$ git checkout master
> M	net/nsd/Portfile
> Already on 'master'
> Your branch is up to date with 'origin/master'.
> Albus:macports-ports sysbh$ git rebase upstream/master
> error: cannot rebase: You have unstaged changes.
> error: Please commit or stash them.
> Albus:macports-ports sysbh$ git reset
> Unstaged changes after reset:
> M	net/nsd/Portfile
> Albus:macports-ports sysbh$ git checkout .
> Albus:macports-ports sysbh$ git status
> On branch master
> Your branch is up to date with 'origin/master'.
> 
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
> 
> 	net/nsd/%Portfile
> 	net/nsd/Portfile-gw-20190817
> 	net/nsd/Portfile.orig
> 	net/unbound/%Portfile
> 	net/unbound/Portfile-gw-20190817
> 	net/unbound/Portfile.orig
> 
> nothing added to commit but untracked files present (use "git add" to track)
> Albus:macports-ports sysbh$ git rebase upstream/master
> First, rewinding head to replay your work on top of it...
> Applying: Updated nsd to 4.2.1, added startupitem to nsd, added @gctwnl as maintainer
> Using index info to reconstruct a base tree...
> M	net/nsd/Portfile
> M	net/unbound/Portfile
> Falling back to patching base and 3-way merge...
> Auto-merging net/unbound/Portfile
> CONFLICT (content): Merge conflict in net/unbound/Portfile
> Auto-merging net/nsd/Portfile
> CONFLICT (content): Merge conflict in net/nsd/Portfile
> error: Failed to merge in the changes.
> Patch failed at 0001 Updated nsd to 4.2.1, added startupitem to nsd, added @gctwnl as maintainer
> hint: Use 'git am --show-current-patch' to see the failed patch
> 
> Resolve all conflicts manually, mark them as resolved with
> "git add/rm <conflicted_files>", then run "git rebase --continue".
> You can instead skip this commit: run "git rebase --skip".
> To abort and get back to the state before "git rebase", run "git rebase --abort".
> 
> Albus:macports-ports sysbh$ cd net/unbound/
> Albus:unbound sysbh$ ls -l
> total 40
> -rw-r--r--  1 sysbh  staff  3957 Aug 17 14:35 %Portfile
> -rw-r--r--  1 sysbh  staff  4106 Aug 24 13:29 Portfile
> -rw-r--r--  1 sysbh  staff  3979 Aug 17 14:23 Portfile-gw-20190817
> -rw-r--r--  1 sysbh  staff  3487 Aug 14 21:20 Portfile.orig
> Albus:unbound sysbh$ rm %Portfile Portfile Portfile-gw-20190817 
> Albus:unbound sysbh$ mv Portfile.orig Portfile
> Albus:unbound sysbh$ cd ../nsd
> Albus:nsd sysbh$ rm %Portfile Portfile Portfile-gw-20190817 
> Albus:nsd sysbh$ mv Portfile.orig Portfile
> Albus:nsd sysbh$ ls -l
> total 8
> -rw-r--r--  1 sysbh  staff  2052 Aug 14 21:20 Portfile
> Albus:nsd sysbh$ cd ../..
> Albus:macports-ports sysbh$ git rebase upstream/master
> fatal: It seems that there is already a rebase-apply directory, and
> I wonder if you are in the middle of another rebase.  If that is the
> case, please try
> 	git rebase (--continue | --abort | --skip)
> If that is not the case, please
> 	rm -fr ".git/rebase-apply"
> and run me again.  I am stopping in case you still have something
> valuable there.
> 
> Albus:macports-ports sysbh$ git rebase --continue
> net/nsd/Portfile: needs merge
> net/unbound/Portfile: needs merge
> You must edit all merge conflicts and then
> mark them as resolved using git add
> Albus:macports-ports sysbh$ rm -fr ".git/rebase-apply"
> Albus:macports-ports sysbh$ git rebase upstream/master
> net/nsd/Portfile: needs merge
> net/unbound/Portfile: needs merge
> error: cannot rebase: You have unstaged changes.
> error: additionally, your index contains uncommitted changes.
> error: Please commit or stash them.
> Albus:macports-ports sysbh$ git checkout .
> error: path 'net/nsd/Portfile' is unmerged
> error: path 'net/unbound/Portfile' is unmerged
> Albus:macports-ports sysbh$ git help checkout
> Albus:macports-ports sysbh$ git checkout -f .
> warning: path 'net/nsd/Portfile' is unmerged
> warning: path 'net/unbound/Portfile' is unmerged
> Albus:macports-ports sysbh$ git help checkout
> 
> 
>> On 24 Aug 2019, at 12:32, miniupnp <miniupnp at free.fr <mailto:miniupnp at free.fr>> wrote:
>> 
>> Hello, 
>> 
>> Well, it looks like you have added 6 commits in you master branch.
>> $ git status
>> should tell you that.
>> Merging upstream/master doesn't remove theses commits.
>> It just "merges" new commits from the upstream/master branch into your current branch.
>> 
>> To understand what is in your branch, you should use the command :
>> $ git log --graph --decorate --all 
>> 
>> the github graph is also useful : 
>> https://github.com/gctwnl/macports-ports/network <https://github.com/gctwnl/macports-ports/network>
>> 
>> What exactly do you want to do ?
>> - have your master branch perfectly in sync with upstream/master ?
>> In that case you should only commit in some other "work" branches.
>> 
>> - use your master branch as a "work" branch.
>> In that case I advise you to rebase on the upstream master.
>> 
>> $ git fetch --all --prune
>> $ git checkout master
>> $ git rebase upstream/master
>> $ git push --force origin master
>> 
>> 
>> 
>> Le 24/08/2019 à 12:12, Gerben Wierda a écrit :
>>> I’ve created my own git fork of macports to work on port updates (have submitted one pull request so far).
>>> 
>>> Now ether is (for me) macports/macports-ports and gctwnl/macports-ports (the one from which I’ve created a pull request).
>>> 
>>> It is not perfectly clear to me how I get the updates from macports/macports-ports back into my fork and be totally in sync.
>>> 
>>> On my local machine, I see this in my macports-ports directory:
>>> 
>>> Albus:macports-ports sysbh$ git remote -v
>>> origin	https://github.com/gctwnl/macports-ports.git <https://github.com/gctwnl/macports-ports.git> (fetch)
>>> origin	https://github.com/gctwnl/macports-ports.git <https://github.com/gctwnl/macports-ports.git> (push)
>>> upstream	https://github.com/macports/macports-ports.git <https://github.com/macports/macports-ports.git> (fetch)
>>> upstream	https://github.com/macports/macports-ports.git <https://github.com/macports/macports-ports.git> (push)
>>> 
>>> So, only my own. These are the commands I ran locally:
>>> 
>>>    14  git fetch upstream
>>>    15  git merge upstream/master
>>>    22  git push
>>> 
>>> But instead of being in sync, GitHub.com <http://github.com/> for gctwnl/macports-ports branch master says:
>>> 
>>> This branch is 6 commits ahead of macports:master.
>>> 
>>> So, I am obviously missing something.
>>> 
>>> Gerben Wierda
>>> Chess and the Art of Enterprise Architecture <http://enterprisechess.com/>
>>> Mastering ArchiMate <http://masteringarchimate.com/>
>>> Architecture for Real Enterprises <https://www.infoworld.com/blog/architecture-for-real-enterprises/> at InfoWorld
>>> On Slippery Ice <https://eapj.org/on-slippery-ice/> at EAPJ
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20190824/8154649b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1930 bytes
Desc: not available
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20190824/8154649b/attachment.bin>


More information about the macports-users mailing list