-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hi Vladimir,

Am Do den 14. Apr 2011 um 22:44 schrieb Vladimir Nadvornik:
> I started to hack Geeqie again and now I have a series of patches for
> stereo image support. The patches also implements a base for future 
> improvements of image loading and rendering.

Nice to see you back.

> The patches are currently in my local git. Since this is my first project 
> with 
> git, I would need some advice how to push it to Gitorious, whether use 
> separate branch, etc. IMHO git provides too much flexibility here ;)

Well, maybe I can give some hints. Ask if they are not detailed enough.

- - Only tracking branches gets pushed to the server per default. You
  start a tracking branch by »checkout -b whatever
  origin/upstreambranch« or by editing .git/config.

- - To push a completely new branch or only one, use it explicit: »git
  push origin yourgreatbranch« or »git push origin
  yourgreatlocalbranch:boringbranchnameinpublic«

- - Stay at the edge of all remotes: »git remote update« (Do not push,
  only pull, but all remotes not only one.)

- - Use branches local (not tracked) to implement a feature but merge it
  in the tracked branch after finishing. Afterwards you can delete your
  own branch but the full history can be seen when you push.

- - Use rebase only on your own branches locally. Never rebase tracking
  branches after you push them. It produce a mess if you do as all
  others have your original branchhead. (However, that can be solved but
  you should omit.)

- - Use origin/master for current development. And use a own origin branch
  for your own work that you want other to see too (experimental or not
  finished stuff. You might rebase on that but try to omit it as I
  explained above). I propose to use release branches for relased
  versions and fixes or release work.

A real example. At the moment I have the following structure local:
- - master -- My tracking branch for origin/master
- - ke -- My private branch with stuff I open to other. As I pushed that
  name it is also the tracking branch for origin/ke. I use merges or
  even cherry-picks to populate that tree. To revoke commits that are
  erroneous I use revert.
- - ke-lua -- My feature branch for the unfinished lua feature. As it
  might be interesting for other even in that early state I also pushed
  it.
- - debian-529531 -- a local branch I use to fix a debian bug. I will
  never push it upstream but merge it into master when it is finished. I
  might use rebase or commit --amend here as it doesn't destroy pushed
  history.

- - Then I have different remotes with all the branches they have:
   github  git://github.com/zas/geeqie_zas.git (fetch)
   github  g...@github.com:zas/geeqie_zas.git (push)
   gitorious       g...@gitorious.org:geeqie/geeqie.git (fetch)
   gitorious       g...@gitorious.org:geeqie/geeqie.git (push)
   origin  ssh://tschil.ethgen.ch/~/git/geeqie.git (fetch)
   origin  ssh://tschil.ethgen.ch/~/git/geeqie.git (push)
   sf      git://geeqie.git.sourceforge.net/gitroot/geeqie/geeqie (fetch)
   sf      m...@geeqie.git.sourceforge.net/gitroot/geeqie/geeqie (push)

As you can see, origin points on my own server where I have a similar
layout and a hook that pushes all my work to all (at the moment github
and gitorious) upstream repositories.

My config (the relevant parts) looks like:
   [remote "origin"]
           url = ssh://tschil.ethgen.ch/~/git/geeqie.git
           fetch = +refs/heads/*:refs/remotes/origin/*
   [remote "github"]
           url = git://github.com/zas/geeqie_zas.git
           pushurl = g...@github.com:zas/geeqie_zas.git
           fetch = +refs/heads/*:refs/remotes/github/*
   [remote "sf"]
           url = git://geeqie.git.sourceforge.net/gitroot/geeqie/geeqie
           fetch = +refs/heads/*:refs/remotes/sf/*
           pushurl = m...@geeqie.git.sourceforge.net/gitroot/geeqie/geeqie
   [remote "gitorious"]
           url = g...@gitorious.org:geeqie/geeqie.git
           fetch = +refs/heads/*:refs/remotes/gitorious/*
           pushurl = g...@gitorious.org:geeqie/geeqie.git
   [branch "master"]
           remote = origin
           merge = refs/heads/master
   [branch "ke"]
           remote = origin
           merge = refs/heads/ke
   [branch "ke-lua"]
           remote = origin
           merge = refs/heads/ke-lua

Note the three branch sections, that are my tracking branches. You might
use other names for remotes or your tracking branches.

What I not mention here is to use special remotes like bundles or local
available checkouts in $HOME of others to even have work that is shared
between people not working in the global repository.

Regards
   Klaus
- -- 
Klaus Ethgen                            http://www.ethgen.ch/
pub  2048R/D1A4EDE5 2000-02-26 Klaus Ethgen <kl...@ethgen.de>
Fingerprint: D7 67 71 C4 99 A6 D4 FE  EA 40 30 57 3C 88 26 2B
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEVAwUBTageap+OKpjRpO3lAQo0Iwf/WdWJhDGRQ048MB7OdDuZArOQmz6bEHCZ
24exKfTuBNAmHNBqEzUiMld4F2uoHI/GRdMQE3vd2aSMht08/LU2wngDLIZr3LpZ
aGu/rOH4RIOU/MKZWaQk5ySVc4mlfDnV6HsoFNMd9zoM2HKJualXhhQG/ukWJn+B
Nc4LLfclBqzmDBt7w44CqZ0zg9FlHvBfRBYVE0sVAEK5DIma6gYxUoyem6bJrtIp
I2GWaW66NOf/KFjjd1Q7tgEpe/18flJlXqgABt4g7S0+gmw7fu+Tzuf1nwaugeqt
ZdRUG8Q8e6quV+cWuLoRUomhHa/z9o4eQj1VQerK0yUGTN+YVilynw==
=5c5U
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel

Reply via email to