cleaned up the branches

5 views
Skip to first unread message

Emmanuel Anne

unread,
Dec 7, 2009, 4:39:02 AM12/7/09
to zfs-...@googlegroups.com
new-master -> master
deleted new-solaris stable

The good news is that when you are running a git pull master it just warns that it used a forced update, but it works.
So nothing is broken, and the mess of branches is fixed.

I promise to try very hard not to do it again anyway !

--
zfs-fuse git repository : http://rainemu.swishparty.co.uk/cgi-bin/gitweb.cgi?p=zfs;a=summary

Rudd-O

unread,
Dec 7, 2009, 5:38:12 PM12/7/09
to zfs-...@googlegroups.com
Will do now.
> --
> To post to this group, send email to zfs-...@googlegroups.com
> To visit our Web site, click on http://zfs-fuse.net/


Manuel Amador (Rudd-O)

unread,
Dec 7, 2009, 5:42:54 PM12/7/09
to zfs-...@googlegroups.com
Sorry man, but this is categorically NOT funny. Now what do I do to solve
this? I did a git reset --hard, but because you pushed changes atop others
and destroyed already-merged public history, I can't merge with you as your
repo currently stands.

Ideas? I really want to merge your work.

-------------------

~@karen.dragonfear α:
j zfs

~/Projects/Third-party/z...@karen.dragonfear α:
git fetch emmanuel
From http://rainemu.swishparty.co.uk/git/zfs
e2590d4..bbbe1c9 ctldir -> emmanuel/ctldir
+ a6b4255...af73060 master -> emmanuel/master (forced update)
897592b..9c9a4d8 umem -> emmanuel/umem

~/Projects/Third-party/z...@karen.dragonfear α:
(reverse-i-search)`merge': git ^Crge emmanuel/master
You have new mail in /var/spool/mail/rudd-o

~/Projects/Third-party/z...@karen.dragonfear α:
git branch
emmanuelmaster
* master

~/Projects/Third-party/z...@karen.dragonfear α:
git merge emmanuel/master
Auto-merging contrib/solaris/onnv-gate/handle_hg.pl
Auto-merging src/SConstruct
CONFLICT (content): Merge conflict in src/SConstruct
Auto-merging src/cmd/zdb/wscript_build
CONFLICT (add/add): Merge conflict in src/cmd/zdb/wscript_build
Auto-merging src/cmd/zdb/zdb.c
CONFLICT (content): Merge conflict in src/cmd/zdb/zdb.c
Auto-merging src/cmd/zfs/wscript_build
CONFLICT (add/add): Merge conflict in src/cmd/zfs/wscript_build
Auto-merging src/cmd/zpool/wscript_build
CONFLICT (add/add): Merge conflict in src/cmd/zpool/wscript_build
Auto-merging src/cmd/zpool/zpool_main.c
CONFLICT (content): Merge conflict in src/cmd/zpool/zpool_main.c
Auto-merging src/cmd/ztest/ztest.c
CONFLICT (content): Merge conflict in src/cmd/ztest/ztest.c
Auto-merging src/lib/libsolcompat/include/thread.h
CONFLICT (content): Merge conflict in src/lib/libsolcompat/include/thread.h
Auto-merging src/lib/libsolkerncompat/SConscript
CONFLICT (content): Merge conflict in src/lib/libsolkerncompat/SConscript
Auto-merging src/lib/libzfs/include/libzfs.h
Auto-merging src/lib/libzfs/include/libzfs_impl.h
Auto-merging src/lib/libzfs/libzfs_dataset.c
Auto-merging src/lib/libzfs/libzfs_pool.c
CONFLICT (content): Merge conflict in src/lib/libzfs/libzfs_pool.c
Auto-merging src/lib/libzfs/libzfs_sendrecv.c
Auto-merging src/lib/libzfs/libzfs_util.c
Auto-merging src/lib/libzfscommon/include/sys/arc.h
Auto-merging src/lib/libzfscommon/include/sys/ddt.h
CONFLICT (add/add): Merge conflict in src/lib/libzfscommon/include/sys/ddt.h
Auto-merging src/lib/libzfscommon/include/sys/dmu.h
Auto-merging src/lib/libzfscommon/include/sys/dmu_traverse.h
CONFLICT (content): Merge conflict in
src/lib/libzfscommon/include/sys/dmu_traverse.h
Auto-merging src/lib/libzfscommon/include/sys/dsl_dataset.h
Auto-merging src/lib/libzfscommon/include/sys/dsl_pool.h
CONFLICT (content): Merge conflict in
src/lib/libzfscommon/include/sys/dsl_pool.h
Auto-merging src/lib/libzfscommon/include/sys/fs/zfs.h
CONFLICT (content): Merge conflict in
src/lib/libzfscommon/include/sys/fs/zfs.h
Auto-merging src/lib/libzfscommon/include/sys/metaslab.h
Auto-merging src/lib/libzfscommon/include/sys/metaslab_impl.h
Auto-merging src/lib/libzfscommon/include/sys/spa.h
Auto-merging src/lib/libzfscommon/include/sys/spa_impl.h
Auto-merging src/lib/libzfscommon/include/sys/zap.h
CONFLICT (content): Merge conflict in src/lib/libzfscommon/include/sys/zap.h
Auto-merging src/lib/libzfscommon/include/sys/zap_impl.h
CONFLICT (content): Merge conflict in
src/lib/libzfscommon/include/sys/zap_impl.h
Auto-merging src/lib/libzfscommon/include/sys/zap_leaf.h
CONFLICT (content): Merge conflict in
src/lib/libzfscommon/include/sys/zap_leaf.h
Auto-merging src/lib/libzfscommon/include/sys/zfs_ioctl.h
Auto-merging src/lib/libzfscommon/include/sys/zio.h
CONFLICT (content): Merge conflict in src/lib/libzfscommon/include/sys/zio.h
Auto-merging src/lib/libzfscommon/zfs_prop.c
Auto-merging src/lib/libzfscommon/zpool_prop.c
Auto-merging src/lib/libzpool/arc.c
Auto-merging src/lib/libzpool/dbuf.c
CONFLICT (content): Merge conflict in src/lib/libzpool/dbuf.c
Auto-merging src/lib/libzpool/ddt.c
CONFLICT (add/add): Merge conflict in src/lib/libzpool/ddt.c
Auto-merging src/lib/libzpool/dmu_objset.c
Auto-merging src/lib/libzpool/dmu_send.c
Auto-merging src/lib/libzpool/dmu_traverse.c
CONFLICT (content): Merge conflict in src/lib/libzpool/dmu_traverse.c
Auto-merging src/lib/libzpool/dmu_tx.c
Auto-merging src/lib/libzpool/dsl_dataset.c
Auto-merging src/lib/libzpool/dsl_deleg.c
Auto-merging src/lib/libzpool/dsl_dir.c
Auto-merging src/lib/libzpool/dsl_pool.c
Auto-merging src/lib/libzpool/dsl_prop.c
Auto-merging src/lib/libzpool/dsl_scrub.c
CONFLICT (content): Merge conflict in src/lib/libzpool/dsl_scrub.c
Auto-merging src/lib/libzpool/include/sys/zfs_context.h
Auto-merging src/lib/libzpool/kernel.c
Auto-merging src/lib/libzpool/metaslab.c
CONFLICT (content): Merge conflict in src/lib/libzpool/metaslab.c
Auto-merging src/lib/libzpool/spa.c
CONFLICT (content): Merge conflict in src/lib/libzpool/spa.c
Auto-merging src/lib/libzpool/spa_config.c
CONFLICT (content): Merge conflict in src/lib/libzpool/spa_config.c
Auto-merging src/lib/libzpool/spa_misc.c
CONFLICT (content): Merge conflict in src/lib/libzpool/spa_misc.c
Auto-merging src/lib/libzpool/space_map.c
Auto-merging src/lib/libzpool/txg.c
Auto-merging src/lib/libzpool/vdev.c
Auto-merging src/lib/libzpool/vdev_queue.c
Auto-merging src/lib/libzpool/zap.c
CONFLICT (content): Merge conflict in src/lib/libzpool/zap.c
Auto-merging src/lib/libzpool/zap_leaf.c
CONFLICT (content): Merge conflict in src/lib/libzpool/zap_leaf.c
Auto-merging src/lib/libzpool/zap_micro.c
CONFLICT (content): Merge conflict in src/lib/libzpool/zap_micro.c
Auto-merging src/lib/libzpool/zfs_fm.c
CONFLICT (content): Merge conflict in src/lib/libzpool/zfs_fm.c
Auto-merging src/lib/libzpool/zio.c
CONFLICT (content): Merge conflict in src/lib/libzpool/zio.c
Auto-merging src/lib/libzpool/zio_inject.c
CONFLICT (content): Merge conflict in src/lib/libzpool/zio_inject.c
Auto-merging src/zfs-fuse/main.c
Auto-merging src/zfs-fuse/zfs_ioctl.c
CONFLICT (content): Merge conflict in src/zfs-fuse/zfs_ioctl.c
Auto-merging src/zfs-fuse/zfs_log.c
Auto-merging src/zfs-fuse/zfs_replay.c
Auto-merging src/zfs-fuse/zfs_vnops.c
Auto-merging src/zfs-fuse/zvol.c
Auto-merging wscript
CONFLICT (add/add): Merge conflict in wscript
Automatic merge failed; fix conflicts and then commit the result.

~/Projects/Third-party/z...@karen.dragonfear α:

signature.asc

sgheeren

unread,
Dec 7, 2009, 5:45:40 PM12/7/09
to zfs-...@googlegroups.com
A newbie to git still, I have the intuition that what incompat.-y was
caused by a rebase, should be fixable by a rebase, probably?

Also, if you really want all changes, you might just rename branches.

sgheeren

unread,
Dec 7, 2009, 5:49:18 PM12/7/09
to zfs-...@googlegroups.com
Rudd-O:

This one again:


Updating rudd-o
fatal: http://git.rudd-o.com/zfs//info/refs not found: did you run git update-server-info on the server?
error: Could not fetch rudd-o

I think you still need to check your hooks (see prior post)

sgheeren

unread,
Dec 7, 2009, 5:50:03 PM12/7/09
to zfs-...@googlegroups.com
sgheeren wrote:
> Rudd-O:
>
> This one again:
>
>
> Updating rudd-o
> fatal: http://git.rudd-o.com/zfs//info/refs not found: did you run git
> update-server-info on the server?
> error: Could not fetch rudd-o
>
> I think you still need to check your hooks (see prior post)
This is not funny too: problem gone after half a minute... ?!

sgheeren

unread,
Dec 7, 2009, 6:01:41 PM12/7/09
to zfs-...@googlegroups.com
I tried to do the same: merge E's master onto your master. I get the
whole slew of merge conflicts.

However:

git checkout -b trymerge rudd-o/master
git merge rainemu/master # warns about a lot of conflicts
git add . # mark the conflicts resolved
git diff > ~/patch # list any differences
git revert --hard # back at rudd-o master...
git apply ~/patch # apply just the content changes
instead
# warns about no changes!

It seems to me there aren't any physical changes, _and_ you might just
resolve this with a 'pro forma' commit:

# git checkout -b trymerge rudd-o/master
# git merge rainemu/master # warns about a lot of conflicts
# git add . # mark the conflicts resolved
# git commit -m 'pro forma to adjust rebased history'

[trymerge 340a495] pro forma to adjust rebased history

# git status

# On branch trymerge
# Your branch is ahead of 'rudd-o/master' by 111 commits.
#
nothing to commit (working directory clean)

I think this handled it nicely:

# git merge rainemu/master

Already up-to-date.

Life is sweet!

sgheeren

unread,
Dec 7, 2009, 6:03:35 PM12/7/09
to zfs-...@googlegroups.com
Oh and if the 111 revisions ff-ed don't interest you, look at the
--squash option to merge?

Rudd-O

unread,
Dec 7, 2009, 6:54:38 PM12/7/09
to zfs-...@googlegroups.com
Rebase is never, EVER, to be used after publishing a changeset stream.

The only use for rebase is to rewrite local-only history. Say, if you
have some changes and you want to rebase them atop a new origin head,
you merge the origin head atop your changes, and then rebase onto origin
so your local-only changes bubble atop origin's changes.

Rudd-O

unread,
Dec 7, 2009, 6:55:26 PM12/7/09
to zfs-...@googlegroups.com
Maybe you hit the two-minute window in which the files are cached?

Rudd-O

unread,
Dec 7, 2009, 6:57:38 PM12/7/09
to zfs-...@googlegroups.com
I basically solved by fetching from emmanuel, rewinding my master head
to discard the previous merge, merging emmanuel's master, and pushing
again, with --force.

This, of course, will cause merge problems for everyone who has been
using my tree. So anyone who is using my master, please reset --hard to
tag 0.6.0 and then pull again so the latest changeset gets applied
cleanly.

Emmanuel Anne

unread,
Dec 7, 2009, 6:58:23 PM12/7/09
to zfs-...@googlegroups.com
Actually I had the same problem (all these conflicts while trying to merge).
But I couldn't keep the branches in this unstable state for ever.

Sorry for the mess, but it had to be done soon or later, I couldn't keep 3 branches while maintaining only 1.
I promised I will be more cautious with rebase from now on...

Meanwhile the options are :
 - if you know how the files should be after the merge (by a clone in a different directory for example), then you can simply use tar to overwrite the conflicts and then commit the fixes. It's probably the best solution.
 - You can also try git pull --rebase which works quite well usually.
 - In last resort just redo a git clone in a separate directory and work from there.

Sorry for the headache, at least after that we'll have learned a lot about git !

2009/12/7 sgheeren <sghe...@hotmail.com>
--
To post to this group, send email to zfs-...@googlegroups.com
To visit our Web site, click on http://zfs-fuse.net/

sgheeren

unread,
Dec 8, 2009, 1:37:18 AM12/8/09
to zfs-...@googlegroups.com
Aha, Thanks! I have a nose for your update window then. Where exactly
did you find that documented?

sgheeren

unread,
Dec 8, 2009, 1:45:25 AM12/8/09
to zfs-...@googlegroups.com
Rudd-O wrote:
> I basically solved by fetching from emmanuel, rewinding my master head
> to discard the previous merge, merging emmanuel's master, and pushing
> again, with --force.
>
> This, of course, will cause merge problems for everyone who has been
> using my tree. So anyone who is using my master, please reset --hard to
> tag 0.6.0 and then pull again so the latest changeset gets applied
> cleanly.
>
"That must be some strange meaning of the word 'solved' that I was
previously unaware of" - freely after captain Beeblebrox [THGTTG]
That _is_ basically rewriting history (by erasing the last part you
wanted changed and overwriting it with the rebased history). I fail to
see why that is a solution.

I think my solution ended (see below) in a clean merge (haven't tried to
criss-cross merge after that, but I expect it to be no problem). In
essense what we got was a manual merge of many merge conflicts, all of
which turn out to be 'empty': in effect there are no content merge
conflicts. While it shouldn't end up that way, I think the effort is
warranted because it appears the resulting branch will be
merge-compatible with both parent branches.

$0.02

Rudd-O

unread,
Dec 8, 2009, 1:12:15 PM12/8/09
to zfs-...@googlegroups.com
I use varnish with a default 120s timeout.
Reply all
Reply to author
Forward
0 new messages