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:29:18 UTC 2019



> On 24 Aug 2019, at 1:28 pm, Christopher Jones <jonesc at hep.phy.cam.ac.uk> wrote:
> 
> Hi,
> 
> If you have unstated changes, you have to stash them before rebasing.

unstated -> unstaged ….

> 
> 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 <mailto: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/8e2e8276/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/8e2e8276/attachment.bin>


More information about the macports-users mailing list