Thread: [HACKERS] FYI: git worktrees as replacement for "rsync the CVSROOT"

[HACKERS] FYI: git worktrees as replacement for "rsync the CVSROOT"

From
Jim Nasby
Date:
Not sure how many people still use [1], as referenced by our git 
wiki[2], but it appears git worktrees are a viable replacement for that 
technique. In short, if you're already in your checkout:

git worktree add ../9.6 REL9_6_STABLE

would give you a checkout of 9.6 in the ../9.6 directory.

BTW, I learned about this from this "git year in review" article[3].

1: 
https://www.postgresql.org/message-id/20090602162347.GF23972@yugib.highrise.ca
2: 
https://wiki.postgresql.org/wiki/Working_with_Git#Continuing_the_.22rsync_the_CVSROOT.22_workflow
3: 
https://hackernoon.com/git-in-2016-fad96ae22a15?imm_mid=0ec3e0&cmp=em-prog-na-na-newsltr_20170114#.shgj609ad
-- 
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)



Re: [HACKERS] FYI: git worktrees as replacement for "rsync theCVSROOT"

From
Bruce Momjian
Date:
On Sun, Jan 15, 2017 at 03:01:47PM -0600, Jim Nasby wrote:
> Not sure how many people still use [1], as referenced by our git wiki[2],
> but it appears git worktrees are a viable replacement for that technique. In
> short, if you're already in your checkout:
> 
> git worktree add ../9.6 REL9_6_STABLE
> 
> would give you a checkout of 9.6 in the ../9.6 directory.
> 
> BTW, I learned about this from this "git year in review" article[3].
> 
> 1: https://www.postgresql.org/message-id/20090602162347.GF23972@yugib.highrise.ca
> 2: https://wiki.postgresql.org/wiki/Working_with_Git#Continuing_the_.22rsync_the_CVSROOT.22_workflow
> 3: https://hackernoon.com/git-in-2016-fad96ae22a15?imm_mid=0ec3e0&cmp=em-prog-na-na-newsltr_20170114#.shgj609ad

Uh, I don't see this in git 2.1.4:
$ git worktreegit: 'worktree' is not a git command. See 'git --help'.

which is in Debian Jessie.  This reports worktree was added in 2.5,
released in July 2015:
https://developer.atlassian.com/blog/2015/10/cool-features-git-2.x/

I am glad the git team has seen the value in work trees and it will be
good to use a more officially supported method in the future.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +



Re: [HACKERS] FYI: git worktrees as replacement for "rsync the CVSROOT"

From
ilmari@ilmari.org (Dagfinn Ilmari Mannsåker)
Date:
Bruce Momjian <bruce@momjian.us> writes:

> On Sun, Jan 15, 2017 at 03:01:47PM -0600, Jim Nasby wrote:
>> Not sure how many people still use [1], as referenced by our git wiki[2],
>> but it appears git worktrees are a viable replacement for that technique. In
>> short, if you're already in your checkout:
>> 
>> git worktree add ../9.6 REL9_6_STABLE
>> 
>> would give you a checkout of 9.6 in the ../9.6 directory.
>> 
>> BTW, I learned about this from this "git year in review" article[3].
>> 
>> 1: https://www.postgresql.org/message-id/20090602162347.GF23972@yugib.highrise.ca
>> 2: https://wiki.postgresql.org/wiki/Working_with_Git#Continuing_the_.22rsync_the_CVSROOT.22_workflow
>> 3: https://hackernoon.com/git-in-2016-fad96ae22a15?imm_mid=0ec3e0&cmp=em-prog-na-na-newsltr_20170114#.shgj609ad
>
> Uh, I don't see this in git 2.1.4:
>
>     $ git worktree
>     git: 'worktree' is not a git command. See 'git --help'.
>
> which is in Debian Jessie.  This reports worktree was added in 2.5,
> released in July 2015:

Backports has git 2.11.0. Just add the "jessie-backports" suite to your
sources list, e.g.:
   deb http://ftp.<country>.debian.org/debian/ jessie-backports main

And install git from there:
   sudo apt install git/jessie-backports

Apt won't upgrade other packages to backports versions, but any packages
you've manually installed from there will be kept up-to-date.

See https://backports.debian.org/ for more details.

-- 
"A disappointingly low fraction of the human race is,at any given time, on fire." - Stig Sandbeck Mathisen



Re: [HACKERS] FYI: git worktrees as replacement for "rsync the CVSROOT"

From
Craig Ringer
Date:
On 16 January 2017 at 05:01, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
> Not sure how many people still use [1], as referenced by our git wiki[2],
> but it appears git worktrees are a viable replacement for that technique. In
> short, if you're already in your checkout:
>
> git worktree add ../9.6 REL9_6_STABLE
>
> would give you a checkout of 9.6 in the ../9.6 directory.
>
> BTW, I learned about this from this "git year in review" article[3].

Looks handy enough to merit adding to the Pg developer FAQ. Please?

It looks cleaner than my current approach of doing a local clone or
re-cloning from upstream with a local repo as a --reference .

-- Craig Ringer                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services



Re: [HACKERS] FYI: git worktrees as replacement for "rsync theCVSROOT"

From
Andrew Dunstan
Date:

On 02/24/2017 02:36 AM, Craig Ringer wrote:
> On 16 January 2017 at 05:01, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
>> Not sure how many people still use [1], as referenced by our git wiki[2],
>> but it appears git worktrees are a viable replacement for that technique. In
>> short, if you're already in your checkout:
>>
>> git worktree add ../9.6 REL9_6_STABLE
>>
>> would give you a checkout of 9.6 in the ../9.6 directory.
>>
>> BTW, I learned about this from this "git year in review" article[3].
> Looks handy enough to merit adding to the Pg developer FAQ. Please?
>
> It looks cleaner than my current approach of doing a local clone or
> re-cloning from upstream with a local repo as a --reference .
>



Does this do anythng different from the git contrib script
git-new-workdir that I have been using for quite a long while?
Essentially it symlinks a bunch of things from the old workdir to the
new one. I copied the technique in the buildfarm's git_use_workdirs feature.


cheers

andrew

-- 

Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: [HACKERS] FYI: git worktrees as replacement for "rsync the CVSROOT"

From
Tom Lane
Date:
Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
> On 02/24/2017 02:36 AM, Craig Ringer wrote:
>> On 16 January 2017 at 05:01, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
>>> git worktree add ../9.6 REL9_6_STABLE

> Does this do anythng different from the git contrib script
> git-new-workdir that I have been using for quite a long while?

I think it's basically a more formally supported version of the contrib
script.  They may have fixed some of the hackier aspects of the contrib
script --- I mind in particular the fact that you need to disable git's
auto-gc activity when you use git-new-workdir, but I don't see any such
restriction in the git-worktree man page.

Haven't tried to switch over myself, but maybe I will at some point.
        regards, tom lane



Re: [HACKERS] FYI: git worktrees as replacement for "rsync theCVSROOT"

From
Jim Nasby
Date:
On 2/24/17 10:24 AM, Tom Lane wrote:
> Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:
>> On 02/24/2017 02:36 AM, Craig Ringer wrote:
>>> On 16 January 2017 at 05:01, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
>>>> git worktree add ../9.6 REL9_6_STABLE
>
>> Does this do anythng different from the git contrib script
>> git-new-workdir that I have been using for quite a long while?
>
> I think it's basically a more formally supported version of the contrib
> script.  They may have fixed some of the hackier aspects of the contrib
> script --- I mind in particular the fact that you need to disable git's
> auto-gc activity when you use git-new-workdir, but I don't see any such
> restriction in the git-worktree man page.
>
> Haven't tried to switch over myself, but maybe I will at some point.

One thing to be aware of that I discovered: you may not have 2 checkouts 
of the same branch, something that is possible with what's currently 
documented on the wiki. Since the only pain in the wiki workflow is 
setting up a new branch (which I've scripted, attached) I've pretty much 
given up on using worktrees.
-- 
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment