Re: newb questions: post-cherry-pick status cleanup, shared local repository permissions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 30, 2009 at 06:22:26AM +0200, Nicolas Sebrecht wrote:
> 
> 
> On Mon, Mar 30, 2009 at 11:03:28AM +0800, Aaron Davies wrote:
> > 
> > hi, i'm new to git, and have a couple questions which are probably
> > very stupid and/or indicate that i've been doing it wrong.
> > 
> > first, a couple words about my setup/workflow: i'm currently sole
> > developer on a project which may at some point get some other coders.
> > the environment is three linux boxes, one for development and two for
> > production, and three accounts, mine, dev, and prod. all homedirs are
> > hosted on the network and are accessible from all three boxen.
> > 
> > i have a "central" (i.e. bare) repository stored in dev's homedir, and
> > regular copies in all three homedirs. the language involved is
> > interpreted, so the code tree is the deployment.
> > 
> > my main workflow is to hack on a branch in my homedir, then merge and
> > push when i have a feature ready. then i go to the dev account and
> > pull, which constitutes dev deployment. once it's thoroughly tested, i
> > do the same in the prod account.
> 
> Looks sane. 
> 
> That said, you could also work on branches (all in "homedir") for the
>     'working on feature' -> testing (dev) -> ready (prod) 
> workflow.
> 
> > now, the questions: an exception to this workflow occurred a couple
> > months ago, when i made some urgent bugfixes that needed to move to
> > prod before other stuff that was currently being tested in dev. this
> > was done via cherry-picking some specific commits into prod. now, in
> > prod, when i do "git status", it says "# Your branch is ahead of
> > 'origin/master' by 8 commits." is there an easy way to get rid of
> > this?
> 
> What I would do is working on "TOPIC" branches. By this way, the bare,
> dev and prod repositories would not "know" of all the commits from mine
> but only the urgent fixes.
> 
> in "mine":
> - step 1
>     $ git checkout -b bugfixes master
> 
> - step 2
>     $ git cherry-pick blabla
>     (and/or <hack, hack, hack>)
> 
> - step 3
>     $ git checkout master
>     $ git merge bugfixes
> 
> - step 4
>     $ git push origin master:master (to the bare repo)
> 
> - step 5
>     $ git branch -d bugfixes
>     $ git checkout myworking
>     $ git rebase myworking master

My bad:
     $ git rebase master

> At step 1, we create the new bugfixes branch from master:
>       (bugfixes)
>      /
> o-o-o          (master)
>      \
>       a-b-c-d  (myworking)
> 
> At step 2, we fix the bugs (cherry-picking and hack):
>       a-c-y-z  (bugfixes)
>      /
> o-o-o          (master)
>      \
>       a-b-c-d  (myworking)
> 
> At step 3, we merge the urgent fixes into master:
>       a-c-y-z  (bugfixes)
>      /
> o-o-o-a-c-y-z  (master)
>      \
>       a-b-c-d  (myworking)
> 
> At step 4, we push the urgent work as usual pushes.
> At step 5, we come back to the usual work:
> 
> o-o-o-a-c-y-z  (master)
>              \
>               b'-d'  (myworking)

Then, you update dev and prod as usual from bare.

-- 
Nicolas Sebrecht

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux