[Phpmyadmin-devel] committing a patch to git

Michal Čihař michal at cihar.com
Mon Mar 22 10:20:48 CET 2010

Hash: SHA1


Dne Thu, 18 Mar 2010 10:02:05 +0100
Dieter Adriaenssens <dieter.adriaenssens at gmail.com> napsal(a):

> $ git merge QA_3_3
> Auto-merging ChangeLog
> CONFLICT (content): Merge conflict in ChangeLog
> Auto-merging Documentation.html
> Auto-merging libraries/config.default.php
> Auto-merging main.php
> Auto-merging tbl_change.php
> CONFLICT (content): Merge conflict in tbl_change.php
> Automatic merge failed; fix conflicts and then commit the result.
> I understand the automerge of Documentation.html and
> libraries/config.default.php. They are probably different between
> branches.
> I understand why merging ChangeLog had difficulties, because I changed
> something there.
> I can imagine why main.php (the file I changed) merged without
> problem, probably because that file was previously unchanged, so the
> merge was no problem.
> But what I don't understand is why the tbl_change.php caused problems.
> I didn't touch that file, so as far as I'm concerned, that file should
> have been correctly merged the previous time (commit before me).

Well the problem is that there was no merge for some changes and both
branches had these changes applied separately (and by different patch
because of different context) and in this case it is hard to tell which
one if correct and it causes conflict (in this case it was most likely
because of commits 8779405 and f0672d8).

> After manualy changing the tbl_change.php and ChangeLog file, I did this :
> git add ChangeLog
> git add tbl_change.php
> (because git status instructed me to)

Well you should do this after resolving conflicts,

> and then
> git commit
> git push
> This resulted in these two commits :
> Changed link to git repository on main page
> Merge branch 'QA_3_3'
> It then turned out I forgot to solve two conflicts in tbl_change.php
> (indicated by >>>>>> HEAD and <<<<<< QA_3_3). I changed this file and
> commited again :
> fix mistake in merge
> Merge branch 'master' of ssh://phpmyadmin.git.sourcefor...

Because you seem to noticed this before pushing the changes, you could
have done git commit --ammend, what folds in changes into last commit.

> (the last commit happened automaticaly when I did a git pull, before
> git push, because Marc had pushed a commit in the meanwhile)

Yes this is the reason for merge commit (you could have done git pull
- --rebase to avoid this merge commit because you did not publish your
changes so far).

I hope my answers clarify the situation at least a bit :-).

- -- 
	Michal Čihař | http://cihar.com | http://blog.cihar.com
Version: GnuPG v1.4.10 (GNU/Linux)


More information about the Developers mailing list