A flag day here is feasible. I will fiddle along the lines you describe.

As for other flag days...

I'm toying with the idea of fixing xstats in a separate branch. I really
hate the idea of breaking backward compatability here, but I do suspect
it will be a barrier to upstreaming, and it is, quite inefficient.


Kevin Darbyshire-Bryant <ke...@darbyshire-bryant.me.uk> writes:

>> On 28 Nov 2017, at 18:48, Dave Taht <d...@taht.net> wrote:
>> 
>> 
>> 
>> It sounds like your git-foo is stronger than ours! I'm not even trying
>> to get head to work, tho my intent would be to promote cobalt to it.
>
> git checkout master
> git pull   (does the equivalent of git fetch origin; git merge origin/master)
> git merge cobalt   (this will produce a minor merge conflict in sch_cake.c)
>
> fix merge conflict
>
> git add sch_cake.c
> git commit   (complete the merge - and create a merge commit in process)
>
> git diff cobalt - should return nothing…content of master & cobalt are the 
> same.
>
> git push  (send this to github assuming above is true!)
>
> If it were me I’d now restart the cobalt ‘feature’ branch from this new 
> ‘master’ point.
>
> git checkout cobalt
> git reset —hard master  (resets ‘cobalts’ commit pointer and the current tree 
> on disc to where master is)
> git push -f   (send that to github -f means force)
>
> You’ve just created a ‘new’ history for the ‘cobalt’ feature branch, so all
> ‘clients’ of that branch will see a ‘forced update’ message….you’ve broken the
> linear git history for that branch, so they’d have to do something like ‘git
> checkout cobalt; git reset —hard origin/cobalt’
>
> I used to be terrified of ‘git reset’ until I read 
> https://git-scm.com/blog/2011/07/11/reset.html - at that point I realised all 
> it (and  the whole of git) is about moving pointers contained in branch names.
>
> Of course I’d advise checking things carefully before doing force pushes….but 
> then I’d imagine many on this list have forks and hence clones of the git 
> repo in various places so it’s all recoverable.
>
>
>> 
>> I didn't know about the cherry-pick option til now, either. I was doing
>> a git format-patch thenewcommit, then a git am on my other branch.
> I’ve just sped up your workflow then :-)
>> 
>> For example, with this config, git fetch --all doesn't do anything.
> git fetch —all goes and gets all the branches/commits etc from all configured
> remotes.  You’ve only 1 remote (origin…which points at github) and it’s likely
> that since it’s not very active that you’ve all the commits etc already in 
> your
> local git database.
>
> I have several remotes e.g.
>
> [remote "origin"]
>         url = g...@github.com:ldir-EDB0/sch_cake.git
>         fetch = +refs/heads/*:refs/remotes/origin/*
> [remote "upstream"]
>         url = g...@github.com:dtaht/sch_cake.git
>         fetch = +refs/heads/*:refs/remotes/upstream/*
> [remote "teg"]
>         url = g...@github.com:tegularius/sch_cake.git
>         fetch = +refs/heads/*:refs/remotes/teg/*
> [remote "rmounce"]
>         url = g...@github.com:rmounce/sch_cake.git
>         fetch = +refs/heads/*:refs/remotes/rmounce/*
>
> so my ‘git fetch —all’ will go and look in all those places for things I’m
> missing.  Origin is my own github base cake repo (a clone/fork of yours),
> ‘upstream’ is a pointer directly to your github repo, ‘teg’ & ‘rmounce’ are
> pointers to their forks/clones.
>
> So to bring my master up to date with yours:
>
> git checkout master
> git fetch —all
> git merge upstream/master. (which should do a ‘fast-forward’ to where you are 
> since I intentionally don’t do any of my own work in master)
> git push (update my own fork with all the latest stuff)
>
>
> My own stuff (not that there is any anymore ‘cos it’s all in cobalt) would 
> then be rebased on top of the stable (but moving) master e.g:
>
> git checkout worldpeace (my WIP mega solution branch)
> edit edit edit, commit commit commit
> git rebase master. - replay all of my stuff on top of the updated master
> edit - fixup any conflicts
> git push -f  (force update my worldpeace branch on github)
>
>
> I like git, but I’m by no means a guru on it….and it took me about 2 years to 
> go from ‘I hate it’ to ‘ahhh I get it - sort of’.  The git reset article 
> helped.  Also having ‘git prompt’ enabled was a godsend.
>
>> 
>> [core]
>>        repositoryformatversion = 0
>>        filemode = true
>>        bare = false
>>        logallrefupdates = true
>> [remote "origin"]
>>        url = g...@github.com:dtaht/sch_cake.git
>>        fetch = +refs/heads/*:refs/remotes/origin/*
>> [branch "master"]
>>        remote = origin
>>        merge = refs/heads/master
>> [branch "for_upstream_4.16"]
>>        remote = origin
>>        merge = refs/heads/for_upstream_4.16
>> [branch "cobalt"]
>>        remote = origin
>>        merge = refs/heads/cobalt
>> 
_______________________________________________
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake

Reply via email to