All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.