From: "Łukasz Lew" <lukasz.lew@gmail.com>
To: "Alexander Potashev" <aspotashev@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 17:48:30 +0100 [thread overview]
Message-ID: <c55009e70812140848j79202b0aqc6ffbfecfff50757@mail.gmail.com> (raw)
In-Reply-To: <20081214160645.GA21358@myhost>
Hi Alexander,
On Sun, Dec 14, 2008 at 17:06, Alexander Potashev <aspotashev@gmail.com> wrote:
> 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.
Indeed good advice and best practice, but another best practice is to
not commit not compiling state.
My common scenario is that I code a big change in priv repository, and
after that I find that some of its parts can and should be moved to
pub.
>
> 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'.
That's a possible solution indeed.
Now I see that the right "plumbing" I need is splitting a commit into
smaller parts and merging several commits into a larger one.
I think that would be nice functionality.
Do you know any tool that would allow such a manipulation on commits
in history?
Thanks
Lukasz
>
>>
>> > 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
>
next prev parent reply other threads:[~2008-12-14 16:49 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
2008-12-14 16:48 ` Łukasz Lew [this message]
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=c55009e70812140848j79202b0aqc6ffbfecfff50757@mail.gmail.com \
--to=lukasz.lew@gmail.com \
--cc=aspotashev@gmail.com \
--cc=git@vger.kernel.org \
--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).