[IPython-dev] how to contribute to ipython

Ondrej Certik ondrej at certik.cz
Thu Jul 16 14:33:45 EDT 2009


On Thu, Jul 16, 2009 at 12:06 PM, Ville M. Vainio<vivainio at gmail.com> wrote:
> On Thu, Jul 16, 2009 at 8:39 PM, Ondrej Certik<ondrej at certik.cz> wrote:
>
>> Ok, so I will keep committing. But here is a real problem. I commitetd
>> with an email address ondrej at crow by a mistake and I would like to use
>> my real address, before you merge it in. In other words, I need to fix
>> last two commits. How can I do that?
>
> If you don't mind some low-tech legwork, you can do a new branch and
> get your changes there by bzr diff + standard 'patch' app.

Well, what are my options?

1) have ondrej at crow in the ipython history
2) use the old good patch app.

Well, I do want to fix my email address. Imagine I noticed after
committing ~20 patches. I would not be happy to rework everything
using "patch". For comparison, with git, I would do:

git rebase -i HEAD~20      # assuming I have 20 patches to fix
# vim fires up, I change "e" next to each patch I want to edit and then
git --amend --author="Ondrej Certik <my correct email address>"
git rebase --continue
# repeat the last two commands 20 times

and I am done. Let me search the internet, there must be some better
way than to do a new branch and rework everything from scratch.

>> I'll comment to these later, after I really learn bazaar. Now only let
>> me say, that you can work with git exactly the same way as with
>> bazaar, e.g. just do:
>>
>> git clone git://git.sympy.org/sympy.git
>>
>> totally forget about git branches and just work with directories, e.g:
>>
>> cd /tmp
>> git clone ~/repos/sympy
>>
>> etc. Then commit using "git ci" etc. And if you want to merge, just
>> use "git pull ~/repos/sympy master"   (yes, that's the only
>> difference, that you tell git which branch to pull from, e.g.
>> "master", since you don't use any other git branches)
>
> The problem with git is not really with the possibly workflows (git
> has it all), it's the general "user friendliness" of the
> implementation/ui. It's very easy to reach a "what the hell happened"
> situation accompanied by cryptic error messages and general discomfort
> about whether your data is safe or not. If you are using a

I see what you mean. Well, with git, as long as you committed (you can
easily check with "git log -p" that your commit does contain all your
changes), it's always safe, even if you delete the branch, you can
still reach all commits in the reflog, so as long as you don't
actually delete the physical .git directory from your harddrive, your
data is safe.

So because of this, I feel very safe with git. And it saved my work
several times already, so I know it works.

> merge-driven (as opposed rebase-driven) workflow anyway, using a tool
> that supports that well and still has an easy-to-understand user
> interface seems like a sensible thing to do.

Maybe. I'll comment later about bzr interface.

>
> It also helps if the tool has a degree of familiarity with the command
> names, instead of introducing totally different commands ("hg revert"
> / "bzr revert" / "git reset --hard").

Yes, I agree with this part.

Ondrej



More information about the IPython-dev mailing list