git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Potashev <aspotashev@gmail.com>
To: "Łukasz Lew" <lukasz.lew@gmail.com>
Cc: Nick Andrew <nick@nick-andrew.net>, git@vger.kernel.org
Subject: Re: How to maintain private/secret/confidential branch.
Date: Sun, 14 Dec 2008 19:06:45 +0300	[thread overview]
Message-ID: <20081214160645.GA21358@myhost> (raw)
In-Reply-To: <c55009e70812140738l8b51adax77cc6e507971554e@mail.gmail.com>

Hello, Łukasz!

On 16:38 Sun 14 Dec     , Łukasz Lew wrote:
> Thanks Nick, thats really helpful (and surprisingly simple).
> I have a couple more questions:
> 
> On Sun, Dec 14, 2008 at 15:55, Nick Andrew <nick@nick-andrew.net> wrote:
> > On Sun, Dec 14, 2008 at 02:49:50PM +0100, Łukasz Lew wrote:
> >> I don't know how to make such a scenario work:
> >> - two repositories: pub, priv
> >> - priv is clone/branch of pub
> >> - there is some constant developement both in pub and priv
> >> - there are regular syncs with pub in priv
> >>
> >> Problem:
> >> Occasionally I want to push some changes from priv to pub.
> >> Then after syncing with pub I want to get as few conflicts as possible.
> >>
> >> Is it possible to do with git?
> >
> > Git can do almost anything. One should instead ask "How to do this
> > with git?" :-)
> 
> So I've heard, but not yet experienced it myself. I'm thrilled to try.
> 
> >
> > If I understand your problem, you could solve it with git cherry-pick
> > and rebase. On priv, make a for-public branch from a pub branch. Then
> > cherry-pick the commits you want from your private branch into the
> > for-public branch.
> 
> That almost works. Can I somehow split existing commits just like in git-add -p?
It's, however, better to make more commits to not experience the need of
commit splitting.

But you can use '--no-commit' option of 'git cherry-pick' and 'git merge'
(and 'git pull' as well as 'git merge'). For example:

	git cherry-pick --no-commit <sha1>    # cherry-pick without commiting
	git reset --                          # unstage all changes
	git add -p                            # patch update

You can also use 'git add -i' (interative mode) instead of 'git add -p'.

> 
> > Push your for-public branch to pub,
> > then rebase your private branch.
> 
> Rebase to the tip of master? Is it needed? Ie. cherry-pick does not
> remove the patch from
> the master in priv.
> 
> If I now pull from pub, I will get the same change and it mereges nicely :D
> 
> Can I get away without creating for_pub branch? maybe cherry pick in
> pub from priv somehow?
> 
> >
> > Nick.
> >

					Alexander

  reply	other threads:[~2008-12-14 16:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-14 13:49 How to maintain private/secret/confidential branch Łukasz Lew
2008-12-14 14:55 ` Nick Andrew
2008-12-14 15:38   ` Łukasz Lew
2008-12-14 16:06     ` Alexander Potashev [this message]
2008-12-14 16:48       ` Łukasz Lew
2008-12-15 20:31         ` Daniel Barkalow
2008-12-17 19:57           ` Łukasz Lew
2008-12-17 20:27             ` Daniel Barkalow
2008-12-17 22:31               ` Łukasz Lew
2008-12-18  8:03                 ` Daniel Barkalow
2008-12-14 16:13     ` Sitaram Chamarty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081214160645.GA21358@myhost \
    --to=aspotashev@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=lukasz.lew@gmail.com \
    --cc=nick@nick-andrew.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).