I'm not very fond of rebasing every commit. I don't like the destruction of
merge history, but I'm not a committer here....

The following link may help any folks not familiar with git and rebasing
from getting themselves (and possibly the project) into a snafu:

https://www.atlassian.com/git/tutorials/merging-vs-rebasing/the-golden-rule-of-rebasing

On Tue, Jan 19, 2016 at 2:55 PM, Ramkumar R. Aiyengar <
andyetitmo...@gmail.com> wrote:

> +1. There might be ways to enforce it on the remote side..
>
>
> http://stackoverflow.com/questions/2039773/have-remote-git-repository-refuse-merge-commits-on-push
>
> But I am not a git expert enough to tell you exactly what the solution
> there is trying to do..
> On 19 Jan 2016 19:00, "Mark Miller" <markrmil...@gmail.com> wrote:
>
>> I think for everyone's sanity we want to mostly ban merge commits and
>> insist people use rebase and a linear history. I think we want to keep the
>> history nice and clean just like it is now.
>>
>> You can change the pull command so that it does rebase rather than merge
>> via git config --global pull.rebase true
>>
>> Even if everyone does not agree with that, we need some discussion and
>> guidelines. Everyone going crazy in Git with merge commits makes an ungodly
>> mess.
>>
>> - Mark
>>
>> On Tue, Jan 19, 2016 at 1:49 PM Dawid Weiss <dawid.we...@gmail.com>
>> wrote:
>>
>>> > So I'm clear, this also means that from Saturday morning (call it 6:00
>>> UTC)
>>> > until you give the OK (assuming the original schedule) I shouldn't
>>> count
>>> > on having access to any of the source code, right?
>>>
>>> You will have access to the source code -- the SVN remains functional,
>>> but it'll be an empty folder on the branches I mentioned.
>>>
>>> > And when you do give the OK, I should plan on rebasing whatever I'm
>>> > working on to the new Git repo. There, did I use at least one Git term
>>> > correctly?
>>>
>>> Well, the workflow is up to you. One possible way to work is like this
>>> (I assume command line, because that's what I use).
>>>
>>> 1) git clone <Apache repo/lucene_solr.git>
>>>     cd lucene_solr
>>>
>>> 2) git checkout master -b mybranch
>>>
>>> 3) while (not done) {
>>>   // work on mybranch's files.
>>>   git add -A .               # add any changes (and removals) to the
>>> commit, recursively.
>>>   git diff --cached         # see what would be committed.
>>>   git commit -m "interim commit"
>>> }
>>>
>>> 4) When done, fetch any new commits from Apache. Merge them with your
>>> feature branch. If there are conflicts, git will guide you. Note there
>>> are no rebases here, you just merge stuff with master much like you
>>> did with SVN.
>>>
>>> git fetch origin
>>> git merge origin/master
>>>
>>> 5) Create a patch against master.
>>>
>>> git diff origin/master > myfeature.patch
>>>
>>> Done. Place the patch in Jira.
>>>
>>> If you wish to commit your changes to master, I'd "squash" all your
>>> interim changes into one single commit (easier on the eyes and simpler
>>> to revert).
>>>
>>> git checkout master
>>> git pull
>>> git merge --squash mybranch --nocommit
>>> # review what would be changed again, etc.
>>> git stat
>>> git diff --cached
>>> # finally, commit
>>> git commit -m "My changes."
>>> # and push the commit from your local repository and current branch to
>>> remote (Apache) repository.
>>> git push origin HEAD
>>>
>>> I guarantee you these steps are conceptually very simple. I'd run gitk
>>> --all after every single one (having read the document I pointed to
>>> previously) -- you'd see how the graph of patches and merges unfolds.
>>>
>>> Dawid
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>>
>>> --
>> - Mark
>> about.me/markrmiller
>>
>


-- 
http://www.the111shift.com

Reply via email to