Amazon Best VPN GoSearch

Favicon OnWorks

git-cvserver - Dalam talian di Awan

Jalankan git-cvsserver dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan git-cvsserver yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


git-cvserver - Emulator pelayan CVS untuk Git

SINOPSIS


SSH:

eksport CVS_SERVER="git cvserver"
cvs -d :ext:user@server/path/repo.git co

pserver (/etc/inetd.conf):

cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvserver pserver

Penggunaan:

git-cvserver [pilihan] [pelayan|pelayan] [ ...]

PILIHAN


Semua pilihan ini jelas hanya masuk akal jika dikuatkuasakan oleh pihak pelayan. Mereka telah
dilaksanakan menyerupai git-daemon(1) pilihan sedekat mungkin.

--laluan asas
Bersiaplah jalan kepada CVSROOT yang diminta

--jalan-ketat
Jangan benarkan pengulangan ke dalam subdirektori

--eksport-semua
Jangan semak gitcvs.enabled dalam konfigurasi. Anda juga perlu menentukan senarai yang dibenarkan
direktori (lihat di bawah) jika anda ingin menggunakan pilihan ini.

-V, - Penukaran
Cetak maklumat versi dan keluar

-h, -H, --bantuan
Cetak maklumat penggunaan dan keluar


Anda boleh menentukan senarai direktori yang dibenarkan. Jika tiada direktori diberikan, semuanya
dibenarkan. Ini adalah sekatan tambahan, akses gitcvs masih perlu didayakan oleh
pilihan konfigurasi gitcvs.enabled melainkan --eksport-semua diberikan juga.

DESCRIPTION


Aplikasi ini ialah lapisan emulasi CVS untuk Git.

Ia sangat berfungsi. Walau bagaimanapun, tidak semua kaedah dilaksanakan, dan untuk kaedah tersebut
yang dilaksanakan, tidak semua suis dilaksanakan.

Ujian telah dilakukan menggunakan kedua-dua klien CLI CVS dan pemalam Eclipse CVS. Paling
fungsi berfungsi dengan baik dengan kedua-dua pelanggan ini.

HADAH


Pelanggan CVS tidak boleh menandai, mencantas atau melakukan gabungan Git.

git-cvserver memetakan cawangan Git kepada modul CVS. Ini sangat berbeza daripada kebanyakan CVS
pengguna akan jangkakan kerana dalam modul CVS biasanya mewakili satu atau lebih direktori.

PEMASANGAN


1. Jika anda akan menawarkan akses CVS melalui pserver, tambahkan baris dalam /etc/inetd.conf seperti

cvspserver stream tcp nowait nobody git-cvsserver pserver

Nota: Sesetengah pelayan inetd membenarkan anda menentukan nama boleh laku secara bebas
nilai argv[0] (iaitu nama program mengandaikan ia telah dilaksanakan). Di dalam ini
kes baris yang betul dalam /etc/inetd.conf kelihatan seperti

cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvserver pserver

Hanya akses tanpa nama disediakan oleh pserve secara lalai. Untuk komited anda perlu
buat akaun pserver, cuma tambah tetapan gitcvs.authdb dalam fail konfigurasi
repositori yang anda mahu cvserver membenarkan penulisan, sebagai contoh:

[gitcvs]
authdb = /etc/cvserver/passwd

Format fail ini ialah nama pengguna diikuti dengan kata laluan yang disulitkan, contohnya:

pengguna saya:$1Oyx5r9mdGZ2
pengguna saya:$1$BA)@$vbnMJMDym7tA32AamXrm./

Anda boleh menggunakan htpasswd kemudahan yang disertakan dengan Apache untuk membuat fail ini, tetapi
Kaedah crypt MD5 Apache berbeza daripada yang digunakan oleh kebanyakan crypt() perpustakaan C
fungsi, jadi jangan gunakan pilihan -m.

Sebagai alternatif anda boleh menghasilkan kata laluan dengan operator crypt() perl:

perl -e 'my ($pengguna, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password

Kemudian berikan kata laluan anda melalui kaedah pserver, contohnya:

cvs -d:pserver:someuser:somepassword server/path/repo.git co

Tiada persediaan khas diperlukan untuk akses SSH, selain daripada mempunyai alat Git dalam PATH. Jika
anda mempunyai pelanggan yang tidak menerima pembolehubah persekitaran CVS_SERVER, anda boleh
menamakan semula git-cvserver kepada cvs.

Nota: Versi CVS yang lebih baharu (>= 1.12.11) juga menyokong penetapan CVS_SERVER terus dalam
CVSROOT seperti

cvs -d ":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git" co

Ini mempunyai kelebihan bahawa ia akan disimpan dalam anda CVS/Root fail dan anda tidak perlu
bimbang tentang sentiasa menetapkan pembolehubah persekitaran yang betul. Pengguna SSH dihadkan
kepada git-shell tidak perlu mengatasi lalai dengan CVS_SERVER (dan tidak sepatutnya) sebagai
git-shell memahami cv maksudnya git-cvserver dan berpura-pura bahawa hujung yang satu lagi berjalan
yang sebenarnya cvs lebih baik.

2. Untuk setiap repo yang anda mahu boleh diakses daripada CVS anda perlu mengedit konfigurasi dalam repo
dan tambah bahagian berikut.

[gitcvs]
enabled = 1
# pilihan untuk nyahpepijat
logFile=/path/to/logfile

Nota: anda perlu memastikan setiap pengguna yang akan memohon git-cvserver telah menulis
akses kepada fail log dan kepada pangkalan data (lihat Pangkalan Data Backend. Jika anda ingin menawarkan
akses tulis melalui SSH, pengguna sudah tentu juga memerlukan akses tulis kepada Git
repositori itu sendiri.

Anda juga perlu memastikan bahawa setiap repositori adalah "telanjang" (tanpa fail indeks Git) untuk
cvs komited untuk bekerja. Lihat gitcvs-migration(7).

Semua pembolehubah konfigurasi juga boleh ditindih untuk kaedah akses tertentu.
Nama kaedah yang sah ialah "ext" (untuk akses SSH) dan "pserver". Contoh berikut
konfigurasi akan melumpuhkan akses pserver sementara masih membenarkan akses melalui SSH.

[gitcvs]
enabled = 0

[gitcvs "ext"]
enabled = 1

3. Jika anda tidak menyatakan CVSROOT/CVS_SERVER secara langsung dalam arahan pembayaran,
menyimpannya secara automatik dalam anda CVS/Root fail, maka anda perlu menetapkannya secara eksplisit
dalam persekitaran anda. CVSROOT harus ditetapkan seperti biasa, tetapi direktori harus
arahkan pada repo Git yang sesuai. Seperti di atas, untuk pelanggan SSH tidak terhad kepada
git-shell, CVS_SERVER hendaklah ditetapkan kepada git-cvserver.

eksport CVSROOT=:ext:user@server:/var/git/project.git
eksport CVS_SERVER="git cvserver"

4. Untuk pelanggan SSH yang akan membuat komitmen, pastikan .ssh/environment sebelah pelayan mereka
fail (atau .bashrc, dsb., mengikut shell khusus mereka) mengeksport nilai yang sesuai
untuk GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME dan GIT_COMMITTER_EMAIL.
Untuk pelanggan SSH yang shell log masuknya ialah bash, .bashrc mungkin merupakan alternatif yang munasabah.

5. Pelanggan kini sepatutnya boleh menyemak projek tersebut. Gunakan CVS modul nama kepada
nyatakan apa yang Git kepala anda ingin menyemak. Ini juga menetapkan nama baru anda
direktori yang didaftar keluar, melainkan anda memberitahu sebaliknya dengan -d . Sebagai contoh,
ini menyemak master cawangan ke direktori induk projek:

cvs co -d project-master master

PANGKALAN DATA KEMBALI


git-cvserver menggunakan satu pangkalan data setiap kepala Git (iaitu modul CVS) untuk menyimpan maklumat tentang
repositori untuk mengekalkan nombor semakan CVS yang konsisten. Pangkalan data perlu
dikemas kini (iaitu ditulis kepada) selepas setiap komit.

Jika komit dilakukan secara langsung dengan menggunakan git (berbanding menggunakan git-cvserver) kemas kini
perlu berlaku pada akses repositori seterusnya oleh git-cvserver, bebas daripada akses
kaedah dan operasi yang diminta.

Ini bermakna walaupun anda hanya menawarkan akses baca (cth dengan menggunakan kaedah pserver),
git-cvserver sepatutnya mempunyai akses tulis kepada pangkalan data untuk berfungsi dengan pasti (jika tidak, anda
perlu memastikan bahawa pangkalan data adalah terkini pada bila-bila masa git-cvserver dilaksanakan).

Secara lalai ia menggunakan pangkalan data SQLite dalam direktori Git, dinamakan
gitcvs. .sqlite. Ambil perhatian bahawa bahagian belakang SQLite mencipta fail sementara dalam
direktori yang sama seperti fail pangkalan data semasa menulis jadi ia mungkin tidak mencukupi untuk memberikan pengguna
menggunakan git-cvserver akses tulis kepada fail pangkalan data tanpa memberi mereka akses tulis
ke direktori juga.

Pangkalan data tidak boleh dijana semula dengan pasti dalam bentuk yang konsisten selepas cawangan itu
penjejakan telah berubah. Contoh: Untuk cawangan yang digabungkan, git-cvserver hanya menjejaki satu cabang
pembangunan, dan selepas a pergi bergabung pangkalan data yang dikemas kini secara berperingkat mungkin menjejaki a
cawangan berbeza daripada pangkalan data yang dijana semula dari awal, menyebabkan CVS tidak konsisten
nombor semakan. git-cvserver tidak mempunyai cara untuk mengetahui cawangan mana yang akan dipilih jika
ia telah dijalankan secara berperingkat sebelum bergabung. Jadi jika anda perlu sepenuhnya atau sebahagian (dari lama
sandaran) menjana semula pangkalan data, anda harus curiga dengan kotak pasir CVS yang sedia ada.

Anda boleh mengkonfigurasi bahagian belakang pangkalan data dengan pembolehubah konfigurasi berikut:

Mengkonfigurasi pangkalan data backend
git-cvserver menggunakan modul Perl DBI. Sila baca juga dokumentasinya jika berubah
pembolehubah ini, terutamanya mengenai DBI->connect().

gitcvs.dbName
Nama pangkalan data. Maksud tepat bergantung pada pemacu pangkalan data yang dipilih, untuk SQLite
ini adalah nama fail. Menyokong penggantian pembolehubah (lihat di bawah). Tidak boleh mengandungi
koma bertitik (;). Lalai: %Ggitcvs.%m.sqlite

gitcvs.dbDriver
Pemandu DBI terpakai. Anda boleh menentukan mana-mana pemandu yang tersedia untuk ini di sini, tetapi mungkin tidak
kerja. cvserver diuji dengan DBD::SQLite, dilaporkan bekerja dengan DBD::Pg, dan
dilaporkan tidak untuk bekerjasama dengan DBD::mysql. Sila anggap ini sebagai ciri percubaan.
Tidak boleh mengandungi titik bertindih (:). Lalai: SQLite

gitcvs.dbuser
Pengguna pangkalan data. Hanya berguna jika menetapkan dbDriver, kerana SQLite tidak mempunyai konsep
pengguna pangkalan data. Menyokong penggantian pembolehubah (lihat di bawah).

gitcvs.dbPass
Kata laluan pangkalan data. Hanya berguna jika menetapkan dbDriver, kerana SQLite tidak mempunyai konsep
kata laluan pangkalan data.

gitcvs.dbTableNameAwalan
Awalan nama jadual pangkalan data. Menyokong penggantian pembolehubah (lihat di bawah). mana-mana
aksara bukan abjad akan digantikan dengan garis bawah.

Semua pembolehubah juga boleh ditetapkan setiap kaedah akses, lihat di atas.

Pembolehubah penggantian
Dalam dbDriver dan dbUser anda boleh menggunakan pembolehubah berikut:

%G
Nama direktori Git

%g
Nama direktori Git, di mana semua aksara kecuali untuk abjad angka, ., dan -
digantikan dengan _ (ini sepatutnya memudahkan untuk menggunakan nama direktori dalam a
nama fail jika mahu)

%m
Modul CVS/nama kepala Git

%a
kaedah capaian (salah satu daripada "ext" atau "pserver")

%u
Nama pengguna yang sedang berjalan git-cvserver. Jika tiada nama boleh ditentukan, angka
uid digunakan.

PERSEKITARAN


Pembolehubah ini menghalang keperluan untuk pilihan baris arahan dalam beberapa keadaan, membenarkan
penggunaan terhad yang lebih mudah melalui git-shell.

GIT_CVSSERVER_BASE_PATH menggantikan hujah kepada --base-path.

GIT_CVSSERVER_ROOT menentukan senarai putih satu direktori. Repositori mesti masih ada
dikonfigurasikan untuk membenarkan akses melalui git-cvserver, seperti yang diterangkan di atas.

Apabila pembolehubah persekitaran ini ditetapkan, argumen baris perintah yang sepadan mungkin tidak
digunakan.

ECLIPSE CVS CLIENT NOTA


Untuk mendapatkan pembayaran dengan pelanggan Eclipse CVS:

1. Pilih "Buat projek baharu → Dari daftar keluar CVS"

2. Cipta lokasi baharu. Lihat nota di bawah untuk butiran tentang cara memilih yang betul
protokol.

3. Semak imbas modul tersedia. Ia akan memberi anda senarai kepala dalam repositori.
Anda tidak akan dapat menyemak imbas pokok dari sana. Hanya kepala.

4. Pilih KETUA apabila ia bertanya cawangan/tag apa yang hendak diperiksa. Nyahtanda "wizard komit pelancaran"
untuk mengelak daripada melakukan fail .projek.

Nota Protokol: Jika anda menggunakan akses tanpa nama melalui pserver, pilih sahaja itu. Itu
menggunakan akses SSH harus memilih ext protokol, dan konfigurasi ext akses di
Keutamaan → Pasukan → CVS → Anak tetingkap ExtConnection. Tetapkan CVS_SERVER kepada "git cvserver". Perhatikan bahawa
sokongan kata laluan tidak baik apabila menggunakan ext, anda pasti mahu mempunyai kunci SSH
persediaan.

Sebagai alternatif, anda boleh menggunakan protokol extssh bukan standard yang ditawarkan oleh Eclipse. Dalam
bahawa kes CVS_SERVER diabaikan, dan anda perlu menggantikan utiliti cvs pada
pelayan dengan git-cvserver atau manipulasi .bashrc anda supaya panggilan itu cvs panggilan dengan berkesan
git-cvserver.

PELANGGAN DIKENALI KEPADA KERJA


· CVS 1.12.9 pada Debian

· CVS 1.11.17 pada MacOSX (daripada pakej Fink)

· Eclipse 3.0, 3.1.2 pada MacOSX (lihat Nota Pelanggan Eclipse CVS)

· Kura-kuraCVS

OPERASI DISOKONG


Semua operasi yang diperlukan untuk kegunaan biasa disokong, termasuk pembayaran, perbezaan,
status, kemas kini, log, tambah, alih keluar, komitmen.

Kebanyakan argumen arahan CVS yang membaca teg CVS atau nombor semakan (biasanya -r) berfungsi dan
juga menyokong mana-mana git refspec (tag, cawangan, ID komit, dll). Walau bagaimanapun, nombor semakan CVS
kerana cawangan bukan lalai tidak dicontohi dengan baik, dan log cvs tidak menunjukkan teg atau cawangan
sama sekali. (Nombor semakan CVS bukan cawangan utama secara dangkal menyerupai nombor semakan CVS,
tetapi mereka sebenarnya mengekodkan ID komit git secara langsung, bukannya mewakili bilangan
semakan sejak titik cawangan.)

Ambil perhatian bahawa terdapat dua cara untuk menyemak cawangan tertentu. Seperti yang diterangkan di tempat lain pada
halaman ini, parameter "modul" cvs checkout ditafsirkan sebagai nama cawangan, dan ia
menjadi cabang utama. Ia kekal sebagai cawangan utama untuk kotak pasir yang diberikan walaupun anda
buat sementara cawangan lain melekat dengan kemas kini cvs -r. Sebagai alternatif, hujah -r
boleh menunjukkan beberapa cawangan lain untuk benar-benar membayar, walaupun modul itu masih
cawangan "utama". Tukar ganti (seperti yang sedang dilaksanakan): Setiap "modul" baharu mencipta modul baharu
pangkalan data pada cakera dengan sejarah untuk modul yang diberikan, dan selepas pangkalan data dicipta,
operasi terhadap cawangan utama itu pantas. Atau sebagai alternatif, -r tidak mengambil sebarang tambahan
ruang cakera, tetapi mungkin jauh lebih perlahan untuk banyak operasi, seperti kemas kini cvs.

Jika anda ingin merujuk kepada git refspec yang mempunyai aksara yang tidak dibenarkan oleh CVS, anda
mempunyai dua pilihan. Pertama, ia mungkin berfungsi untuk membekalkan git refspec terus ke
hujah CVS -r yang sesuai; sesetengah pelanggan CVS nampaknya tidak melakukan banyak pemeriksaan kewarasan
hujah. Kedua, jika itu gagal, anda boleh menggunakan mekanisme melarikan diri watak khas itu
hanya menggunakan aksara yang sah dalam teg CVS. Urutan 4 atau 5 aksara bagi
borang (garis bawah ("_"), sengkang ("-"), satu atau dua aksara dan sengkang ("-")) boleh mengekod
pelbagai aksara berdasarkan satu atau dua huruf: "s" untuk slash ("/"), "p" untuk noktah
("."), "u" untuk garis bawah ("_"), atau dua digit heksadesimal untuk sebarang nilai bait sama sekali
(biasanya nombor ASCII, atau mungkin sebahagian daripada aksara yang dikodkan UTF-8).

Operasi pemantauan warisan tidak disokong (edit, tonton dan berkaitan). Eksport dan
penandaan (tag dan cawangan) tidak disokong pada peringkat ini.

CRLF Talian Berakhir Penukaran
Secara lalai pelayan meninggalkan -k mod kosong untuk semua fail, yang menyebabkan klien CVS
untuk menganggapnya sebagai fail teks, tertakluk kepada penukaran hujung talian pada beberapa platform.

Anda boleh membuat pelayan menggunakan atribut penukaran akhir baris untuk menetapkan -k mod untuk
fail dengan menetapkan pembolehubah konfigurasi gitcvs.usecrlfattr. Lihat gitattribut(5) untuk lebih lanjut
maklumat tentang penukaran hujung talian.

Sebagai alternatif, jika konfigurasi gitcvs.usecrlfattr tidak didayakan atau atribut tidak membenarkan
pengesanan automatik untuk nama fail, kemudian pelayan menggunakan konfigurasi gitcvs.allBinary untuk
tetapan lalai. Jika gitcvs.allBinary ditetapkan, maka fail yang tidak dinyatakan akan sebaliknya
lalai kepada -kb mod. Jika tidak -k mod dibiarkan kosong. Tetapi jika gitcvs.allBinary ditetapkan
untuk "meneka", maka yang betul -k mod akan diteka berdasarkan kandungan fail.

Untuk konsistensi terbaik dengan cvs, mungkin lebih baik untuk mengatasi lalai dengan menetapkan
gitcvs.usecrlfattr kepada benar, dan gitcvs.allBinary untuk "meneka".

KEBERGANTUNGAN


git-cvserver bergantung pada DBD::SQLite.

GIT


Sebahagian daripada pergi(1) suite

Gunakan git-cvserver dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad




×
Pengiklanan
❤ ️Beli, tempah atau beli di sini — tanpa kos, membantu memastikan perkhidmatan percuma.