Git access levels

0 views
Skip to first unread message

Pål

unread,
Nov 4, 2009, 4:38:05 AM11/4/09
to Copenhagen Ruby Brigade
Hej alle,
Jeg har en rails app der skal deployes via git/capistrano.
Repositoriet er ganske omfattende og rails applikationen er kun en
lille del af repositoriet i sit eget directory.
Jeg prøver at finde den bedste måde at opdatere rails delen alene på
en ekstern server med capistrano.

Nogen forslag? Det ser ikke ud til at git har mulighed for at give
læseadgang for en bruger til et subdirectory, så det bliver måske
noget med at lave et nyt rails-alone repo og en post-commit hook på
det "rigtige" repo der importerer ændringerne ind i rails-alone
repoet, men det er ikke nogen god løsning.

Det vigtige er at den eksterne server kun har læseadgang til
railsdelen... og at opdateringer kan køre via capistrano....

Måske er der er nogen git-hajer der har prøvet det?... :-)

Bedste hilsener
Pål

Jacob Atzen

unread,
Nov 4, 2009, 5:01:23 AM11/4/09
to copenhagen-ru...@googlegroups.com
Hej Pål,

En mulighed er at bruge "copy" strategien, og så exclude de dele af
biblioteksstrukturen du ikke vil have deploy'et.

set :deploy_via, :copy
set :copy_exclude, [".git", "foo", "bar"]

Med copy bliver der lavet et repositorie lokalt på den maskine du
deployer fra som så bliver pakket og uploadet til serveren.

Du kan evt. smide copy_cache på, så den ikke laver en fuld clone hver
gang du vil deploye:

set :copy_cache, true

Fordelen ved denne strategi er, at du slipper for at installere git på
serveren og har en finkornet kontrol med, hvilke dele af din kode der
rammer serveren. Ulempen er, at det tager tid og båndbredde at uploade
en fuld tar-ball, hver gang du deployer i forhold til at have et
lokalt git repos på serveren, der bare skal opdateres.

2009/11/4 Pål <i...@paal.dk>:
--
Med venlig hilsen
- Jacob Atzen

Pål

unread,
Nov 4, 2009, 3:35:07 PM11/4/09
to Copenhagen Ruby Brigade
Hej Jacob,
Rigtig god løsning at lave det som en push, og pyt med det lidt ekstra
overhead i den tarball. Det sparer mig for en hel masse problemer med
adgangsrettigheder så den er købt! Tak for hjælpen.

Mvh Pål

Pål

unread,
Nov 6, 2009, 4:49:29 AM11/6/09
to Copenhagen Ruby Brigade
Hej igen,
:deploy_via :copy, antager ligesom alle andre deploy metoder at roden
i repositoriet er et rails projekt, så der skal hackes lidt i
capistrano før det virker med subdirectories. Jeg har undersøgt lidt
mere om det her på nettet og hvis andre skulle være interesseret i
hvordan man deployer et projekt der ligger i et subdirectory i git er
der en udemærket patch til capistrano her. Så slipper man for at
skrive det selv:

http://blog.crdlo.com/2009/01/git-project-deployment-with-capistrano.html

Det viser sig nemlig at git rent faktisk understøtter export af
subdirs via "git archive", det er bare ikke lagt ind i capistrano...

Mvh Pål

On 4 Nov., 11:01, Jacob Atzen <jat...@gmail.com> wrote:
Reply all
Reply to author
Forward
0 new messages