> there's also http://hg-git.github.io/ which means that the hg client
> can push into git repos, which may mean the best of both worlds: i

update: i've looked into this and it seems manageable. the result of a
proof-of-concept workflow is available here:

https://github.com/attila-lendvai/maru-hg-git-experiment
https://bitbucket.org/attila-lendvai/maru/

the github repo is pushed from a local maru hg repo with the hg-git
plugin enabled. in my local hg repo i've recorded some new commits
relative to the official hg repo. these commits separate the eval1,
eval2, and eval3 into separate bookmarks/branches called 'stage-n'.

the hg repo at bitbucket.org has the hg stage-n bookmarks.

when i 'hg push github', the hg bookmarks are synced with git
branches. (hg branches, as opposed to bookmarks, are following a
different model than git, and are also becoming less and less used)

i'll attach my notes at the end of my mail, maybe it's useful to
someone.

even though this workflow is manageable, all in all i think it's not
worth the trouble. practically i'm doing with hg bookmarks what i'd be
doing with git branches, except that the mercurial tools seem to be
less numerous and less developed. and the complexity bookmarks bring
in, e.g. the need to occasionally rebase commits between bookmarks,
practically make hg as complex as using git is. i don't like git, but
i don't see how hg is better in this workflow either.

Ian, at this point i badly need some input on at least this to decide
whether to pursuit the hg-git way, or to just use git. (the converted
git repo contains the full hg history)

as of the changes themselves:

the C bootstrap files are moved into ./bootstrap/c/ and the build
scripts are updated accordingly. the various stage-n repos hold the
appropriate versions of eval.c and boot.l. stage-1 is the beginning
state, without any changes by me.

as of the official repo, the following files seem to be missing,
probably they are not checked in: maru-nfibs.k, test2.c, and
maru-test2.k

hth,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“You can avoid reality, but you cannot avoid the consequences of
avoiding reality.”
        — Ayn Rand (1905–1982)




the hg-git articles i've read while doing this:

https://bitbucket.org/durin42/hg-git
http://hg-git.github.io/
http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/
http://www.kevinberridge.com/2012/05/hg-bookmarks-made-me-sad.html


$ hg clone http://bitbucket.org/durin42/hg-git



$ cat ~/.hgrc
[extensions]
record=
rebase =
hggit = ~/workspace/hg-git/hggit

[git]
# note: ~ is note expanded in 'authors'
authors = /home/alendvai/.hg-author-map.txt
# this would only bridge the bookmarks to/from git that end with this suffix
#branch_bookmark_suffix=-bm



$ cat ~/.hg-author-map.txt
piumarta = Ian Piumarta <i...@piumarta.com>
Ian Piumarta = Ian Piumarta <i...@piumarta.com>
piumarta@winxp = Ian Piumarta <i...@piumarta.com>
piumarta@win7 = Ian Piumarta <i...@piumarta.com>



$ cat .hg/hgrc
[paths]
default = http://piumarta.com/hg/maru/
github = git+ssh://g...@github.com/attila-lendvai/maru-hg-git-experiment.git



#hg #rebasing between bookmarks, a commit from stage-2 to stage-1:

$ hg merge --preview stage-2
changeset:   620:9edd2855f621
summary:     Move files needed for the C bootstrap into ./bootstrap/c

changeset:   621:---=>3c0a9370e3b6<=---
summary:     Added a .hgignore


$ hg rebase --keep --rev 3c0a9370e3b6 --dest stage-1

# then we need to reset stage-2 for some reason. probably because it
# was the tip commit of stage-2 and rebasing moved the bookmark also.

$ hg bookmark -f --rev 3c0a9370e3b6 stage-2

# "pulling" this change to stage-3 requires no rebase, just moving the
# bookmark:

$ hg bookmark -f --rev 3c0a9370e3b6 stage-3
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to