Üdv
Több kisebb-nagyobb projectnél használtam már bazaar-t, főleg mert nem találtam mást. Itt olyan esetekre kell gondolni, hogy kisebb weboldal, ahová csak egy szem ftp/sft hozzáférést kaptam, semmi egyebet, de nem akartam lemondani a verziókezelésről. Ugyanis bzr tud olyat, hogy szerverre telepítés nélkül tud remote repositoryt létrehozni-használni (upload pluginnel), mintha csak scp-znék.Vagyis ilyen esetekben ez úgy néz ki hogy
bzr init
bzr add
bzr commit
<eddig local, most jön a push>
bzr push sftp://iksz@ipszilon.ize
<branch.conf-ba megadom ezt az útvonalat>
bzr upload
<itt feltolja az egészet>
Ezek után csak bzr update és bzr commit kell, és fel-le mennek a fájlok, változások, add, uncommit, diff, minden, teljesen jól használható.
Illetve... ezért írok most ide, mert néha eszméletlen lassú, meg egyéb bajai is szoktak lenni. Lehet megnéznék másokat is, hátha.
Rögtön jött a kézenfekvő git, hiszen ez folyik mindenhonnan, meg hogy decentralizált meg minden. De akárhány leírást néztem, mindenhol volt egy olyan rész a remote repo beállításnál, hogy "a szerveren adjuk ki a git init", ... na ez innen már nem is jó, nincs szerverhozzáférés, vagyis git-telepítés semmiképp (teoretikusan). Valahol írtak olyat, hogy localban csinálok egy git init --bare -t majd ezt felmásolom akár sima scp-vel a szerverre, és ha git remote add -al hozzáadom akkor milyen jól megy, de nem megy, 'bash: git-receive-pack command not found', nyilván, a távoli gépen nincs git.
Vagy valamit félreértek? Nyilván, különben menne, én meg nem írnék ide. :)
Tehát a kérdésem az, hogy megoldható-e a git bazaar-szerű használata? A git-bash és társait egyelőre hagynám, akárcsak a github, heroku, és más ilyen jellegű megoldásokat. A célom mindössze annyi, hogy egy git telepítése után tudom-e használni a megszokott módon, vagy mindenképpen egyéb programok/scriptek/külső szolgáltató, akármi kell hozzá?
Köszönöm előre is, remélem érthető voltam. :)
(még a mercurial jöhet szóba, azt hiszem az is tud ilyet, de most a git-nek adnék egy esélyt, ha tudok)
- 5309 megtekintés
Hozzászólások
Ez engem is erdekel, mercurial-ra.
- A hozzászóláshoz be kell jelentkezni
A git is tud már olyan szerverre pusholni, ahova nincs telepítve. „git help push” segít, „GIT URLS” rész.
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
Sajnos nem megy, a git init, majd git add, git commit után ha próbálkozom egy git push ftp:/.... - vel, ezt kapom:
~$ git push --set-upstream ftp://*******/GITREPO/gitteszt.git master
fatal: unable to access 'ftp://*********gitteszt.git/': RETR response: 550
Ha ssh-n keresztül próbálom, megkapom a "bash: git-upload-pack: command not found"-ot, ami a nagy G szerint attól van, mert nincs benne az ssh által látott path-ban a /usr/bin, pl. Persze, benne van, csak nincs git-upload-pack, hiszen _nincs_ git a szerveren. :) Innen indult az egész.
- A hozzászóláshoz be kell jelentkezni
Igen, úgy emlékeztem, hogy ez megy, de akkor mégsem. Viszont a „git ftp push” kulcsszóra keresve jönnek érdekes dolgok, pl. ez: https://github.com/git-ftp/git-ftp
Azt viszont neked kell tudnod, hogy ez az FTP mennyire fontos. Én inkább fognék egy Dropboxot vagy más hasonlót, csinálnék bele egy bare repót és abba pusholnék. Akivel pedig meg akarom osztani, azzal a könyvtárat osztanám meg.
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
Igen, ezt megtaláltam, valamint van ennek python-os megfelelője, találtam leírást apache+webdav megoldásra, van pár script transmithez, meg talán netbeanshez, ssh-t sshfs-el vagy bármi mást bármifuse-al felcsatolhatok egy könyvtárba ...rendben, értem én hogy meg lehet valahogy patkolni.
A kérdésem az továbbra is, hogy lehet-e úgy használni, ahogy szeretném, egyszerűen, szerveroldal nélkül feltolja a kódot és a metaadatait valahová, és használja mintha localban lenne.
Az ftp (vagy ssh) push bizonyos esetekben egy baromi kényelmes megoldás volt, ezért akartam ezt a feature-t legjobban, de kezdem úgy látni hogy nem lesz jó. Ettől függetlenül nem hagyom abba a megismerését, csak kár hogy pont ezt nem megy. Tudom, az ftp felett eljárt az idő, de volt, (és még most is simán van), amikor nincs más, és nem is kifejezetten indokolt bonyolultabb megoldás. (Mármint az ügyfél szerint.. ;) )
Valahol írták, hogy a legnagyobb különbség a bzr/hg és a git között, hogy az előbbik "csak" alkalmazások, de a git egy verziókezelésre képes fájlrendszer. Talán a filozófia miatt van az egész.
- A hozzászóláshoz be kell jelentkezni
szerintem egyszerűbb, ha használsz egy git bare repót lokálisan, azt pedig rsync-eled a szervereddel
- A hozzászóláshoz be kell jelentkezni
Egyszerűbb, ha csinálsz egy ftp.conf fájlt (ebben vannak hozzáférési adatok, lehet .gitignore -ba rakni) és egy pár soros push.sh bash fájlt amibe szinkronizálsz.
Valami ilyesmi:
ftp.conf:
HOST=ftp.szolgaltato.hu
USER=user
PASSWORD=password
push.sh:
#!/bin/bash
source ./ftp.conf
lftp -e "mirror -x ftp.conf -R ./; exit" -u $USER,$PASSWORD $HOST
- A hozzászóláshoz be kell jelentkezni
A gitnek eleg egy webdav tamogatas szerveroldalra, es akkor siman tudsz http-re pusholni. Ellentetben peldaul az SVN-nel, a gitnek nem kell specialis DAV plugin a mukodeshez, barmely olyan szerver/szolgaltato megteszi, ahol van DAV eleres.
A git workflow nyilvan egy picit mas:
git init
git add .
git commit -m "initial commit"
git remote add origin http://x:y@hostja.com/ez/itten/az/url/pathje
git push -u origin master
Es innentol mar csak a git commit / git push parancsokkal kell operalni. Amiben nem vagyok biztos, hogy a userneves login megadas mukodik-e, amennyiben nem, akkor a netrc-be kell beletolni a megfelelo sorokat, es akkor siman eleg csak a hostnevtol megadni az url-t.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
de DAV-hoz is kell git a szerveren, ha jól tudom. javítsatok ki, ha nem.
- A hozzászóláshoz be kell jelentkezni
Ne teveszd ossze a gitet az svn-nel vagy a mercuriallal. Hg eseteben valoban erosen ajanlott az altaluk szallitott HTTP szervert hasznalni, viszont Git eseteben tenyleg csak egy sima DAV tamogatas kell.
Amennyire tudom, az utobbi idokben mar a git update-server-info futtatasa sem kotelezo.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
én nem tévesztem össze, csak amíg ilyeneket látok a webszerver logjában, hogy
"GET /dav/info/refs?service=git-receive-pack HTTP/1.1"
addig azt kell gondolnom, hogy ha a git-receive-pack nincs ott a szerveren, akkor nem fog menni.
Ugyanúgy, ahogy ssh-val is szükséges a szerveren a git.
Szóval, elolvastam ezt: http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
Ott azt írják, hogy olvassam el ezt: https://www.kernel.org/pub/software/scm/git/docs/howto/setup-git-server…
Ott pedig azt írják, hogy: "either have git installed on the server or have a webdav client on the client."
Tehát csak úgy fog működni szerver oldalon nem létező git-tel, hogy van valami webdav client.
Továbbá pedig teljesítménye http-n elég gyenge. Ugyanúgy, mintha egy network share-en lenne a remote git repo.
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni