EnglishFrenchSpanyol

Ad


Favicon OnWorks

git-fast-import - Dalam talian dalam Awan

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

Ini ialah arahan git-fast-import 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-fast-import - Bahagian belakang untuk pengimport data Git yang pantas

SINOPSIS


bahagian hadapan | pergi import cepat [pilihan]

DESCRIPTION


Program ini biasanya bukan yang pengguna akhir mahu jalankan secara langsung. Kebanyakan pengguna akhir mahu
untuk menggunakan salah satu program frontend sedia ada, yang menghuraikan jenis asing tertentu
sumber dan suapan kandungan yang disimpan di sana pergi import cepat.

import cepat membaca arahan/strim data bercampur daripada input standard dan menulis satu atau lebih
packfiles terus ke dalam repositori semasa. Apabila EOF diterima pada input standard,
import pantas menulis rujukan cawangan dan teg yang dikemas kini, mengemas kini sepenuhnya repositori semasa
dengan data yang baru diimport.

Bahagian belakang import cepat itu sendiri boleh mengimport ke dalam repositori kosong (yang sudah
telah dimulakan oleh pergi INIT) atau kemas kini secara berperingkat repositori berpenduduk sedia ada.
Sama ada import tambahan disokong daripada sumber asing tertentu bergantung atau tidak
pada program bahagian hadapan yang sedang digunakan.

PILIHAN


- kekuatan
Paksa mengemas kini cawangan sedia ada yang diubah suai, walaupun jika berbuat demikian akan menyebabkan komit menjadi
hilang (kerana komit baru tidak mengandungi komit lama).

--senyap
Lumpuhkan semua output bukan maut, menjadikan import pantas senyap apabila ia berjaya. ini
pilihan melumpuhkan output yang ditunjukkan oleh --stats.

--statistik
Paparkan beberapa statistik asas tentang objek fast-import telah dicipta, packfiles
ia disimpan ke dalam, dan memori yang digunakan oleh import cepat semasa larian ini. Menunjukkan
output ini pada masa ini adalah lalai, tetapi boleh dilumpuhkan dengan --quiet.

Pilihan Untuk Bahagian depan
--cat-blob-fd=
Tulis respons untuk pertanyaan get-mark, cat-blob dan ls kepada deskriptor fail
bukannya stdout. Membenarkan output kemajuan yang dimaksudkan untuk pengguna akhir dipisahkan
daripada keluaran lain.

--format-tarikh=
Nyatakan jenis tarikh yang akan dibekalkan oleh bahagian hadapan untuk mengimport pantas dalam pengarang,
perintah committer dan tagger. Lihat "Format Tarikh" di bawah untuk butiran mengenainya
format disokong, dan sintaksnya.

--selesai
Tamatkan dengan ralat jika tiada arahan selesai pada penghujung strim. Pilihan ini
mungkin berguna untuk mengesan ralat yang menyebabkan bahagian hadapan ditamatkan sebelum itu
telah mula menulis aliran.

Lokasi of Tanda Fail
--export-marks=
Lambakkan jadual markah dalaman ke apabila lengkap. Markah ditulis satu setiap baris
sebagai :markid SHA-1. Frontends boleh menggunakan fail ini untuk mengesahkan import selepas ia dilakukan
selesai, atau untuk menyimpan jadual markah merentas larian tambahan. Sebagai adalah sahaja
dibuka dan dipotong di pusat pemeriksaan (atau siap) laluan yang sama juga boleh selamat
diberikan kepada --import-marks.

--import-marks=
Sebelum memproses sebarang input, muatkan tanda yang dinyatakan dalam . Fail input mesti
wujud, mesti boleh dibaca dan mesti menggunakan format yang sama seperti yang dihasilkan oleh --export-marks.
Pelbagai pilihan mungkin dibekalkan untuk mengimport lebih daripada satu set markah. Jika markah adalah
ditakrifkan kepada nilai yang berbeza, fail terakhir menang.

--import-marks-jika-wujud=
Seperti --import-marks tetapi bukannya tersilap, langkau fail secara senyap jika fail itu berlaku
tidak wujud.

--[tiada-]tanda-relatif
Selepas menentukan --relative-marks laluan yang ditentukan dengan --import-marks= dan
--export-marks= adalah relatif kepada direktori dalaman dalam repositori semasa. Dalam
git-fast-import ini bermakna bahawa laluan adalah relatif kepada .git/info/fast-import
direktori. Walau bagaimanapun, pengimport lain mungkin menggunakan lokasi yang berbeza.

Tanda relatif dan bukan relatif boleh digabungkan dengan jalinan --(no-)-tanda-relatif
dengan pilihan --(import|eksport)-marks=.

prestasi and Mampatan Menala
--cawangan-aktif=
Bilangan maksimum cawangan untuk mengekalkan aktif sekali gus. Lihat "Penggunaan Memori" di bawah
untuk butiran. Lalai ialah 5.

--big-file-threshold=
Saiz maksimum gumpalan yang diimport pantas akan cuba mencipta delta untuk, dinyatakan
dalam bait. Lalai ialah 512m (512 MiB). Sesetengah pengimport mungkin ingin menurunkan ini pada
sistem dengan ingatan terhad.

--depth=
Kedalaman delta maksimum, untuk pemisahan gumpalan dan pokok. Lalai ialah 10.

--export-pack-edges=
Selepas mencipta fail pek, cetak baris data ke menyenaraikan nama fail
packfile dan komit terakhir pada setiap cawangan yang telah ditulis pada packfile itu. ini
maklumat mungkin berguna selepas mengimport projek yang jumlah set objek melebihi
Had fail pek 4 GiB, kerana komit ini boleh digunakan sebagai titik tepi semasa panggilan ke pergi
pack-objek.

--saiz-pek-maks=
Saiz maksimum setiap fail pek output. Lalai adalah tidak terhad.

PRESTASI


Reka bentuk import cepat membolehkannya mengimport projek besar dalam jumlah memori yang minimum
penggunaan dan masa pemprosesan. Dengan mengandaikan bahagian hadapan mampu bersaing dengan import pantas dan
suapkan aliran data yang berterusan, masa import untuk projek yang mempunyai sejarah 10+ tahun
dan mengandungi 100,000+ komitmen individu biasanya diselesaikan dalam masa 1-2 jam sahaja pada
perkakasan yang agak sederhana (~$2,000 USD).

Kebanyakan kesesakan nampaknya berada dalam akses data sumber asing (sumber tidak boleh
ekstrak semakan cukup pantas) atau cakera IO (fast-import menulis sepantas cakera akan
mengambil data). Import akan berjalan lebih pantas jika data sumber disimpan pada pemacu yang berbeza
daripada repositori Git destinasi (kerana kurang perbalahan IO).

PEMBANGUNAN KOS


Bahagian hadapan biasa untuk import cepat cenderung mempunyai berat kira-kira 200 baris
Kod Perl/Python/Ruby. Kebanyakan pembangun telah dapat mencipta pengimport yang berfungsi dalam masa sahaja
beberapa jam, walaupun ia merupakan pendedahan pertama mereka kepada import pantas, dan kadangkala
malah kepada Git. Ini adalah situasi yang ideal, memandangkan kebanyakan alat penukaran adalah dibuang
(guna sekali, dan jangan menoleh ke belakang).

PARALEL OPERASI


suka pergi menolak or pergi ambil, import yang dikendalikan oleh import cepat selamat untuk dijalankan bersama
selari git repack -a -d atau git gc invocations, atau mana-mana operasi Git lain (termasuk pergi
plum, kerana objek longgar tidak pernah digunakan oleh import cepat).

fast-import tidak mengunci cawangan atau rujukan tag yang sedang diimport secara aktif. Selepas
import, semasa fasa kemas kini refnya, import pantas menguji setiap rujukan cawangan sedia ada untuk mengesahkan
kemas kini akan menjadi kemas kini ke hadapan pantas (komit yang disimpan dalam ref terkandung dalam
sejarah baru komit yang akan ditulis). Jika kemas kini bukan kemas kini ke hadapan pantas,
import cepat akan melangkau mengemas kini ref itu dan sebaliknya mencetak mesej amaran. import cepat
akan sentiasa cuba mengemas kini semua rujukan cawangan, dan tidak berhenti pada kegagalan pertama.

Kemas kini cawangan boleh dipaksa dengan --force, tetapi disyorkan bahawa ini hanya digunakan pada
repositori yang senyap. Menggunakan --force tidak diperlukan untuk import awal ke dalam
repositori kosong.

TEKNIKAL PERBINCANGAN


import pantas menjejaki set cawangan dalam ingatan. Mana-mana cawangan boleh dibuat atau diubah suai di
sebarang titik semasa proses import dengan menghantar arahan komit pada aliran input. ini
reka bentuk membolehkan program bahagian hadapan memproses bilangan cawangan yang tidak terhad
pada masa yang sama, menjana komit mengikut susunan ia tersedia daripada data sumber.
Ia juga memudahkan program bahagian hadapan dengan ketara.

fast-import tidak menggunakan atau mengubah direktori kerja semasa, atau mana-mana fail di dalamnya.
(Walau bagaimanapun, ia mengemas kini repositori Git semasa, seperti yang dirujuk oleh GIT_DIR.) Oleh itu
bahagian hadapan import boleh menggunakan direktori kerja untuk tujuannya sendiri, seperti mengekstrak
semakan fail daripada sumber asing. Kejahilan direktori kerja ini juga
membolehkan import cepat berjalan dengan sangat pantas, kerana ia tidak perlu melakukan sebarang fail yang mahal
kemas kini operasi apabila bertukar antara cawangan.

INPUT FORMAT


Dengan pengecualian data fail mentah (yang tidak ditafsirkan oleh Git) input import pantas
format adalah berasaskan teks (ASCII). Format berasaskan teks ini memudahkan pembangunan dan penyahpepijatan
program frontend, terutamanya apabila bahasa peringkat lebih tinggi seperti Perl, Python atau Ruby
sedang digunakan.

fast-import sangat ketat mengenai inputnya. Di mana kita sebut SP di bawah yang kita maksudkan sebenarnya 1
angkasa lepas. Begitu juga LF bermaksud satu (dan hanya satu) suapan talian dan HT satu (dan hanya satu) mendatar
tab. Membekalkan aksara ruang kosong tambahan akan menyebabkan hasil yang tidak dijangka, seperti
nama cawangan atau nama fail dengan ruang hadapan atau belakang dalam nama mereka, atau awal
penamatan import cepat apabila ia menghadapi input yang tidak dijangka.

Stream Komen-komen
Untuk membantu dalam penyahpepijatan bahagian hadapan import cepat abaikan mana-mana baris yang bermula dengan # (ASCII
paun/cincang) sehingga dan termasuk baris yang berakhir dengan LF. Baris ulasan mungkin mengandungi sebarang
jujukan bait yang tidak mengandungi LF dan oleh itu boleh digunakan untuk memasukkan mana-mana
maklumat penyahpepijatan terperinci yang mungkin khusus untuk bahagian hadapan dan berguna apabila
memeriksa aliran data import pantas.

Tarikh Format
Format tarikh berikut disokong. Bahagian hadapan harus memilih format yang akan digunakan
untuk import ini dengan menghantar nama format dalam --date-format= pilihan baris arahan.

mentah
Ini ialah format asli Git dan adalah SP . Ia juga adalah import cepat
format lalai, jika --date-format tidak ditentukan.

Masa acara ditentukan oleh sebagai bilangan saat sejak UNIX
epoch (tengah malam, 1 Jan 1970, UTC) dan ditulis sebagai integer perpuluhan ASCII.

Offset tempatan ditentukan oleh sebagai offset positif atau negatif daripada UTC.
Contohnya EST (iaitu 5 jam di belakang UTC) akan dinyatakan dalam oleh "-0500"
manakala UTC ialah “+0000”. Offset tempatan tidak menjejaskan ; ia hanya digunakan sebagai
nasihat untuk membantu memformat rutin memaparkan cap masa.

Jika offset setempat tidak tersedia dalam bahan sumber, gunakan "+0000", atau paling banyak
offset tempatan biasa. Sebagai contoh banyak organisasi mempunyai repositori CVS yang mempunyai
hanya pernah diakses oleh pengguna yang berada di lokasi dan zon waktu yang sama.
Dalam kes ini, offset yang munasabah daripada UTC boleh diandaikan.

Tidak seperti format rfc2822, format ini sangat ketat. Sebarang variasi dalam pemformatan
akan menyebabkan import cepat menolak nilai.

rfc2822
Ini ialah format e-mel standard seperti yang diterangkan oleh RFC 2822.

Nilai contoh ialah "Selasa 6 Feb 11:22:18 2007 -0500". Penghurai Git adalah tepat, tetapi a
sedikit di sisi kelembutan. Ia adalah penghurai yang sama digunakan oleh pergi am apabila menggunakan tampalan
diterima daripada e-mel.

Beberapa rentetan yang cacat boleh diterima sebagai tarikh yang sah. Dalam beberapa kes ini Git akan
masih boleh mendapatkan tarikh yang betul daripada rentetan yang cacat. Terdapat juga
beberapa jenis rentetan cacat yang Git akan menghuraikan salah, namun menganggapnya sah.
Rentetan yang rosak teruk akan ditolak.

Tidak seperti format mentah di atas, maklumat mengimbangi zon waktu/UTC yang terkandung dalam RFC
Rentetan tarikh 2822 digunakan untuk melaraskan nilai tarikh kepada UTC sebelum penyimpanan. Oleh itu
adalah penting bahawa maklumat ini setepat mungkin.

Jika bahan sumber menggunakan tarikh gaya RFC 2822, bahagian hadapan hendaklah membenarkan import pantas
mengendalikan penghuraian dan penukaran (bukannya cuba melakukannya sendiri) sebagai Git
parser telah diuji dengan baik di alam liar.

Frontend harus memilih format mentah jika bahan sumber sudah menggunakan UNIX-epoch
format, boleh dipujuk untuk memberikan tarikh dalam format itu, atau formatnya mudah
boleh ditukar kepadanya, kerana tiada kesamaran dalam penghuraian.

kini
Sentiasa gunakan masa dan zon waktu semasa. Yang tersurat sekarang mesti sentiasa dibekalkan
.

Ini adalah format mainan. Masa dan zon masa semasa sistem ini sentiasa disalin
ke dalam rentetan identiti pada masa ia dibuat oleh import cepat. Tidak ada
cara untuk menentukan masa atau zon waktu yang berbeza.

Format khusus ini dibekalkan kerana ia pendek untuk dilaksanakan dan mungkin berguna untuk a
proses yang ingin mencipta komitmen baharu sekarang, tanpa perlu menggunakan kerja
direktori atau pergi indeks kemas kini.

Jika arahan pengarang dan komit yang berasingan digunakan dalam komit, cap masa mungkin tidak
sepadan, kerana jam sistem akan ditinjau dua kali (sekali untuk setiap arahan). Satu-satunya cara
untuk memastikan bahawa maklumat identiti pengarang dan pengarang mempunyai cap masa yang sama
adalah untuk meninggalkan pengarang (dengan itu menyalin daripada committer) atau menggunakan format tarikh selain daripada
sekarang.

arahan
fast-import menerima beberapa arahan untuk mengemas kini repositori semasa dan mengawal
proses import semasa. Perbincangan yang lebih terperinci (dengan contoh) bagi setiap arahan berikut
kemudian.

melakukan
Mencipta cawangan baharu atau mengemas kini cawangan sedia ada dengan mencipta komitmen baharu dan
mengemas kini cawangan untuk menunjuk pada komit yang baru dibuat.

tag
Mencipta objek teg beranotasi daripada komit atau cawangan sedia ada. Tag ringan
tidak disokong oleh arahan ini, kerana ia tidak disyorkan untuk rakaman
titik yang bermakna dalam masa.

menetapkan semula
Tetapkan semula cawangan sedia ada (atau cawangan baharu) kepada semakan khusus. Perintah ini mesti
digunakan untuk menukar cawangan kepada semakan khusus tanpa membuat komitmen padanya.

tompok
Tukar data fail mentah menjadi gumpalan, untuk kegunaan masa hadapan dalam arahan komit. Perintah ini ialah
pilihan dan tidak diperlukan untuk melakukan import.

pemeriksaan
Memaksa import pantas untuk menutup fail pek semasa, menjana nilai semak SHA-1 yang unik
dan indeks, dan mulakan fail pek baharu. Perintah ini adalah pilihan dan tidak diperlukan
melaksanakan import.

kemajuan
Menyebabkan import pantas menggemakan keseluruhan baris kepada output standardnya sendiri. Perintah ini ialah
pilihan dan tidak diperlukan untuk melakukan import.

dilakukan
Menandai penghujung aliran. Perintah ini adalah pilihan melainkan ciri yang dilakukan adalah
diminta menggunakan pilihan baris arahan --done atau arahan selesai ciri.

mendapat-tanda
Menyebabkan import pantas mencetak SHA-1 yang sepadan dengan tanda pada deskriptor fail
ditetapkan dengan --cat-blob-fd, atau stdout jika tidak ditentukan.

gumpalan kucing
Menyebabkan import cepat mencetak gumpalan masuk fail kucing --batch format kepada deskriptor fail
ditetapkan dengan --cat-blob-fd atau stdout jika tidak ditentukan.

ls
Menyebabkan import pantas mencetak baris yang menerangkan masukan direktori ls-pokok format ke
deskriptor fail ditetapkan dengan --cat-blob-fd atau stdout jika tidak ditentukan.

ciri
Dayakan ciri yang ditentukan. Ini memerlukan import cepat menyokong yang ditentukan
ciri, dan batalkan jika tidak.

pilihan
Tentukan mana-mana pilihan yang disenaraikan di bawah OPTIONS yang tidak menukar semantik strim kepada
sesuai dengan keperluan frontend. Perintah ini adalah pilihan dan tidak diperlukan untuk melaksanakan a
import.

melakukan
Cipta atau kemas kini cawangan dengan komit baharu, merekodkan satu perubahan logik kepada projek.

'komit' SP LF
tandakan?
('pengarang' (SP )? SP LT GT SP LF)?
'committer' (SP )? SP LT GT SP LF
data
('dari' SP LF)?
('gabung' SP LF)?
(ubahsuai fail | padam fail | salinan fail | nama fail | padam semua fail | ubah suai)*
LF?

di mana ialah nama cawangan untuk membuat komitmen. Biasanya nama cawangan adalah
diawali dengan refs/heads/ dalam Git, jadi mengimport simbol cawangan CVS RELENG-1_0 akan menggunakan
refs/heads/RELENG-1_0 untuk nilai . Nilai mestilah nama semula yang sah
dalam Git. Oleh kerana LF tidak sah dalam nama semula Git, tiada sintaks petikan atau melarikan diri disokong
di sini.

Perintah tanda mungkin muncul secara pilihan, meminta import cepat untuk menyimpan rujukan kepada
komitmen yang baru dibuat untuk kegunaan masa hadapan oleh bahagian hadapan (lihat di bawah untuk format). Ia sangat
biasa bagi bahagian hadapan untuk menandakan setiap komitmen yang mereka buat, dengan itu membenarkan cawangan masa hadapan
penciptaan daripada sebarang komit yang diimport.

Perintah data berikut komit mesti membekalkan mesej komit (lihat di bawah untuk data
sintaks arahan). Untuk mengimport mesej komit kosong gunakan data 0 panjang. Komit mesej
adalah bentuk bebas dan tidak ditafsirkan oleh Git. Pada masa ini ia mesti dikodkan dalam UTF-8, sebagai
import cepat tidak membenarkan pengekodan lain ditentukan.

Sifar atau lebih ubah suai fail, padam fail, salinan fail, namakan semula fail, padam semua dan catatkan
arahan boleh disertakan untuk mengemas kini kandungan cawangan sebelum membuat
komited. Arahan ini boleh dibekalkan dalam sebarang pesanan. Walau bagaimanapun adalah disyorkan bahawa a
perintah filedeleteall mendahului semua perintah filemodify, filecopy, filerename dan notemodify
dalam komit yang sama, kerana filedeleteall membersihkan cawangan (lihat di bawah).

LF selepas arahan adalah pilihan (ia diperlukan).

pengarang
Perintah pengarang mungkin muncul secara pilihan, jika maklumat pengarang mungkin berbeza daripada
maklumat committer. Jika pengarang ditinggalkan maka import cepat akan secara automatik
gunakan maklumat committer untuk bahagian pengarang commit. Lihat di bawah untuk a
perihalan medan dalam pengarang, kerana ia sama dengan committer.

pengirim
Perintah committer menunjukkan siapa yang membuat commit ini, dan bila mereka membuatnya.

Di sini ialah nama paparan orang tersebut (contohnya “Com M Itter”) dan ialah
alamat e-mel orang tersebut (“[e-mel dilindungi]”). LT dan GT ialah literal kurang daripada
(\x3c) dan simbol yang lebih besar daripada (\x3e). Ini diperlukan untuk mengehadkan e-mel
alamat dari medan lain dalam baris. Perhatikan bahawa dan adalah berbentuk bebas
dan mungkin mengandungi sebarang jujukan bait, kecuali LT, GT dan LF. biasanya UTF-8
dikodkan.

Masa perubahan ditentukan oleh menggunakan format tarikh yang dipilih
dengan --date-format= pilihan baris arahan. Lihat "Format Tarikh" di atas untuk set
format yang disokong, dan sintaksnya.

dari
Perintah from digunakan untuk menentukan komit untuk memulakan cawangan ini daripada. ini
semakan akan menjadi nenek moyang pertama komitmen baharu. Keadaan pokok yang dibina di
komit ini akan bermula dengan keadaan pada komit dari, dan diubah oleh
pengubahsuaian kandungan dalam komitmen ini.

Mengeluarkan arahan daripada dalam komit pertama cawangan baharu akan menyebabkan import cepat
untuk mencipta komitmen itu tanpa moyang. Ini cenderung hanya diingini untuk yang awal
melakukan sesuatu projek. Jika bahagian hadapan mencipta semua fail dari awal apabila membuat fail baharu
cawangan, arahan gabungan boleh digunakan dan bukannya dari untuk memulakan komit dengan kosong
pokok. Meninggalkan arahan daripada pada cawangan sedia ada biasanya dikehendaki, sebagai
komit semasa pada cawangan itu secara automatik diandaikan sebagai nenek moyang pertama
komitmen baru.

Oleh kerana LF tidak sah dalam nama semula Git atau ungkapan SHA-1, tiada sintaks memetik atau melarikan diri
disokong dalam .

Di sini adalah mana-mana yang berikut:

· Nama cawangan sedia ada yang sudah ada dalam jadual cawangan dalaman import cepat. Jika
fast-import tidak tahu namanya, ia dianggap sebagai ungkapan SHA-1.

· Rujukan markah, : , di mana ialah nombor markah.

Sebab import cepat menggunakan : untuk menandakan rujukan tanda ialah aksara ini bukan
sah dalam nama cawangan Git. Yang terkemuka : memudahkan untuk membezakan antara
tanda 42 (:42) dan cawangan 42 (42 atau rujukan/kepala/42), atau singkatan SHA-1
yang kebetulan hanya terdiri daripada asas-10 digit.

Markah mesti diisytiharkan (melalui markah) sebelum ia boleh digunakan.

· Komit SHA-40 1 bait atau singkatan lengkap dalam heks.

· Sebarang ungkapan Git SHA-1 yang sah yang diselesaikan kepada komit. Lihat “MENYATAKAN
SEMAKAN” dalam gitrevisyen(7) untuk butiran.

· SHA-1 nol khas (40 sifar) menentukan bahawa cawangan itu akan dialih keluar.

Kes khas memulakan semula import tambahan daripada nilai cawangan semasa
hendaklah ditulis sebagai:

daripada rujukan/kepala/cawangan^0

Akhiran ^0 diperlukan kerana import cepat tidak membenarkan cawangan bermula dari
itu sendiri, dan cawangan dicipta dalam ingatan sebelum arahan from dibaca daripada
input. Menambah ^0 akan memaksa import cepat untuk menyelesaikan komit melalui Git
pustaka penghuraian semakan, bukannya jadual cawangan dalamannya, dengan itu dimuatkan
nilai sedia ada cawangan.

bergabung
Termasuk satu komitmen nenek moyang tambahan. Pautan keturunan tambahan tidak berubah
cara keadaan pokok dibina pada komit ini. Jika arahan daripada ditinggalkan apabila
mencipta cawangan baharu, komit gabungan pertama akan menjadi nenek moyang pertama
komit semasa, dan cawangan akan bermula tanpa fail. Bilangan yang tidak terhad
perintah gabungan setiap komit dibenarkan oleh import cepat, dengan itu mewujudkan jalan-n
bercantum.

Di sini adalah mana-mana ungkapan spesifikasi komit yang juga diterima oleh daripada
(lihat di atas).

filemodify
Termasuk dalam arahan komit untuk menambah fail baharu atau menukar kandungan fail sedia ada
fail. Perintah ini mempunyai dua cara berbeza untuk menentukan kandungan fail.

Format data luaran
Kandungan data untuk fail telah dibekalkan oleh arahan gumpalan sebelumnya. The
frontend hanya perlu menyambungkannya.

'M' SP SP SP LF

Di sini selalunya mestilah sama ada rujukan markah (: ) ditetapkan oleh yang terdahulu
arahan gumpalan, atau SHA-40 1-bait penuh bagi objek gumpalan Git sedia ada. Jika ialah
040000` kemudian mestilah 40-bait SHA-1 penuh pepohon Git sedia ada
objek atau set rujukan tanda dengan --import-marks.

Format data sebaris
Kandungan data untuk fail belum dibekalkan lagi. Bahagian hadapan mahu
membekalkannya sebagai sebahagian daripada perintah ubah suai ini.

'M' SP SP 'sebaris' SP LF
data

Lihat di bawah untuk penerangan terperinci tentang arahan data.

Dalam kedua-dua format ialah jenis kemasukan fail, dinyatakan dalam oktal. Git sahaja
menyokong mod berikut:

· 100644 atau 644: Fail biasa (tidak boleh laksana). Majoriti fail dalam kebanyakan
projek menggunakan mod ini. Jika ragu-ragu, inilah yang anda mahukan.

· 100755 atau 755: Fail biasa, tetapi boleh laksana.

· 120000: Pautan sym, kandungan fail akan menjadi sasaran pautan.

· 160000: Pautan git, SHA-1 objek merujuk kepada komit dalam repositori lain.
Pautan Git hanya boleh ditentukan oleh SHA atau melalui tanda komit. Mereka sudah biasa
melaksanakan submodul.

· 040000: Subdirektori. Subdirektori hanya boleh ditentukan oleh SHA atau melalui a
tanda pokok ditetapkan dengan --import-marks.

Dalam kedua-dua format ialah laluan lengkap fail yang akan ditambahkan (jika belum
sedia ada) atau diubah suai (jika sudah sedia ada).

A rentetan mesti menggunakan pemisah direktori gaya UNIX (slash ke hadapan /), boleh
mengandungi sebarang bait selain LF, dan tidak boleh bermula dengan petikan berganda (").

Laluan boleh menggunakan petikan rentetan gaya C; ini diterima dalam semua kes dan wajib jika
nama fail bermula dengan petikan berganda atau mengandungi LF. Dalam petikan gaya C, lengkap
nama hendaklah dikelilingi dengan petikan berganda, dan mana-mana LF, segaris ke belakang atau petikan berganda
aksara mesti dilepaskan dengan mendahuluinya dengan garis miring ke belakang (cth, "path/with\n, \\
dan \" di dalamnya").

Nilai mestilah dalam bentuk kanonik. Itulah yang tidak boleh:

· mengandungi komponen direktori kosong (cth foo//bar tidak sah),

· berakhir dengan pemisah direktori (cth foo/ tidak sah),

· mulakan dengan pemisah direktori (cth /foo tidak sah),

· mengandungi komponen khas. atau .. (cth foo/./bar dan foo/../bar ialah
tidak sah).

Akar pokok boleh diwakili oleh rentetan kosong sebagai .

Adalah disyorkan bahawa sentiasa dikodkan menggunakan UTF-8.

padam fail
Termasuk dalam perintah komit untuk mengalih keluar fail atau memadam keseluruhannya secara rekursif
direktori daripada cawangan. Jika fail atau penyingkiran direktori menjadikan direktori induknya
kosong, direktori induk akan dialih keluar secara automatik juga. Ini melonjakkan
pokok sehingga direktori tidak kosong pertama atau akar dicapai.

'D' SP LF

di sini ialah laluan lengkap fail atau subdirektori untuk dialih keluar daripada
cawangan. Lihat filemodify di atas untuk penerangan terperinci tentang .

salinan fail
Menyalin fail atau subdirektori sedia ada secara rekursif ke lokasi lain dalam
cawangan. Fail atau direktori sedia ada mesti wujud. Jika destinasi itu wujud ia akan berlaku
diganti sepenuhnya dengan kandungan yang disalin daripada sumber.

'C' SP SP LF

di sini yang pertama ialah lokasi sumber dan yang kedua adalah destinasi.
Lihat filemodify di atas untuk penerangan terperinci tentang apa mungkin kelihatan seperti. Untuk menggunakan a
laluan sumber yang mengandungi SP laluan mesti dipetik.

Perintah salinan fail berkuat kuasa serta-merta. Setelah lokasi sumber telah disalin
ke destinasi sebarang arahan masa hadapan yang digunakan pada lokasi sumber tidak akan memberi kesan
destinasi salinan.

nama fail
Menamakan semula fail atau subdirektori sedia ada ke lokasi lain dalam cawangan.
Fail atau direktori sedia ada mesti wujud. Jika destinasi itu wujud ia akan menjadi
digantikan dengan direktori sumber.

'R' SP SP LF

di sini yang pertama ialah lokasi sumber dan yang kedua adalah destinasi.
Lihat filemodify di atas untuk penerangan terperinci tentang apa mungkin kelihatan seperti. Untuk menggunakan a
laluan sumber yang mengandungi SP laluan mesti dipetik.

Perintah nama fail berkuat kuasa serta-merta. Setelah lokasi sumber telah
dinamakan semula kepada destinasi mana-mana arahan masa hadapan yang digunakan pada lokasi sumber akan
buat fail baharu di sana dan tidak memberi kesan kepada destinasi nama semula.

Ambil perhatian bahawa nama semula fail adalah sama dengan salinan fail diikuti dengan pemadaman fail bagi
lokasi sumber. Terdapat sedikit kelebihan prestasi untuk menggunakan nama fail, tetapi
kelebihan adalah sangat kecil sehingga tidak berbaloi untuk menukar pasangan padam/tambah masuk
bahan sumber menjadi nama semula untuk import pantas. Perintah nama fail ini disediakan
hanya untuk memudahkan frontend yang sudah mempunyai maklumat nama semula dan tidak mahu mengganggu
dengan menguraikannya menjadi salinan fail diikuti dengan pemadaman fail.

faildeleteall
Termasuk dalam arahan komit untuk mengalih keluar semua fail (dan juga semua direktori) daripada
cawangan. Perintah ini menetapkan semula struktur cawangan dalaman untuk tidak mempunyai fail di dalamnya,
membenarkan bahagian hadapan untuk menambah semua fail menarik dari awal.

'deleteall' LF

Perintah ini sangat berguna jika bahagian hadapan tidak tahu (atau tidak peduli
tahu) fail apa yang ada pada cawangan pada masa ini, dan oleh itu tidak dapat menjana fail yang betul
perintah padam fail untuk mengemas kini kandungan.

Mengeluarkan faildeleteall diikuti dengan perintah filemodify yang diperlukan untuk menetapkan yang betul
kandungan akan menghasilkan keputusan yang sama seperti menghantar hanya fail yang diperlukanmodify dan
perintah padam fail. Pendekatan faildeleteall bagaimanapun mungkin memerlukan import cepat untuk digunakan
lebih sedikit memori bagi setiap cawangan aktif (kurang daripada 1 MiB untuk kebanyakan projek besar);
jadi bahagian hadapan yang boleh mendapatkan dengan mudah hanya laluan yang terjejas untuk komit adalah
digalakkan berbuat demikian.

ubah suai nota
Termasuk dalam komit arahan untuk menambah nota baharu beranotasi a
atau tukar kandungan anotasi ini. Secara dalaman ia serupa dengan filemodify 100644 on
laluan (mungkin berpecah kepada subdirektori). Ia tidak dinasihatkan untuk menggunakan yang lain
arahan untuk menulis kepada pokok kecuali filedeleteall untuk memadam semua yang sedia ada
nota dalam pokok ini. Perintah ini mempunyai dua cara berbeza untuk menentukan kandungan
nota itu.

Format data luaran
Kandungan data untuk nota telah dibekalkan oleh arahan gumpalan sebelumnya. The
frontend hanya perlu menyambungkannya kepada komit yang akan diberi anotasi.

'N' SP SP LF

Di sini boleh menjadi rujukan tanda (: ) ditetapkan oleh gumpalan sebelumnya
perintah, atau SHA-40 1-bait penuh bagi objek gumpalan Git sedia ada.

Format data sebaris
Kandungan data untuk nota itu belum dibekalkan lagi. Bahagian hadapan mahu
membekalkannya sebagai sebahagian daripada perintah ubah suai ini.

'N' SP 'sebaris' SP LF
data

Lihat di bawah untuk penerangan terperinci tentang arahan data.

Dalam kedua-dua format adalah mana-mana ungkapan spesifikasi komit juga
diterima oleh daripada (lihat di atas).

tanda
Mengatur import cepat untuk menyimpan rujukan kepada objek semasa, membenarkan bahagian hadapan
untuk mengingati objek ini pada masa hadapan, tanpa mengetahui SHA-1nya. Di sini
objek semasa ialah perintah penciptaan objek arahan tanda muncul di dalamnya. Ini boleh jadi
commit, tag dan blob, tetapi commit ialah penggunaan yang paling biasa.

'tanda' SP ':' LF

di mana ialah nombor yang diberikan oleh bahagian hadapan kepada tanda ini. Nilai ialah
dinyatakan sebagai integer perpuluhan ASCII. Nilai 0 dikhaskan dan tidak boleh digunakan sebagai a
tanda. Hanya nilai yang lebih besar daripada atau sama dengan 1 boleh digunakan sebagai markah.

Tanda baharu dibuat secara automatik. Tanda sedia ada boleh dialihkan ke objek lain dengan mudah
dengan menggunakan semula yang sama dalam arahan tanda yang lain.

tag
Mencipta teg beranotasi merujuk kepada komitmen tertentu. Untuk mencipta ringan
teg (tidak beranotasi) lihat arahan set semula di bawah.

'tag' SP LF
'dari' SP LF
'tagger' (SP )? SP LT GT SP LF
data

di mana ialah nama tag untuk dibuat.

Nama teg diawali secara automatik dengan rujukan/tag/ apabila disimpan dalam Git, jadi mengimport fail
Simbol cawangan CVS RELENG-1_0-FINAL akan menggunakan hanya RELENG-1_0-FINAL untuk , dan
fast-import akan menulis ref yang sepadan sebagai refs/tags/RELENG-1_0-FINAL.

Nilai mestilah nama semula yang sah dalam Git dan oleh itu mungkin mengandungi hadapan
garis miring. Oleh kerana LF tidak sah dalam nama semula Git, tiada sintaks petikan atau melarikan diri disokong
di sini.

Perintah dari adalah sama seperti dalam arahan komit; lihat di atas untuk butiran.

Perintah tagger menggunakan format yang sama seperti committer dalam commit; sekali lagi lihat di atas untuk
butiran.

Perintah data berikut penanda mesti membekalkan mesej tag beranotasi (lihat di bawah untuk
sintaks arahan data). Untuk mengimport mesej teg kosong gunakan data 0 panjang. Tag mesej ialah
bentuk bebas dan tidak ditafsirkan oleh Git. Pada masa ini ia mesti dikodkan dalam UTF-8, sebagai
import cepat tidak membenarkan pengekodan lain ditentukan.

Menandatangani teg beranotasi semasa import dari dalam import cepat tidak disokong. Cuba
sertakan tandatangan PGP/GPG anda sendiri tidak disyorkan, kerana bahagian hadapan tidak (dengan mudah)
mempunyai akses kepada set lengkap bait yang biasanya masuk ke dalam tandatangan sedemikian. Jika
tandatangan diperlukan, buat tag ringan dari dalam import cepat dengan tetapan semula, kemudian
buat versi beranotasi bagi teg tersebut di luar talian dengan standard pergi tag proses.

menetapkan semula
Mencipta (atau mencipta semula) cawangan yang dinamakan, secara pilihan bermula daripada semakan khusus. The
perintah set semula membenarkan bahagian hadapan mengeluarkan perintah daripada baharu untuk cawangan sedia ada, atau kepada
buat cawangan baharu daripada komit sedia ada tanpa membuat komit baharu.

'set semula' SP LF
('dari' SP LF)?
LF?

Untuk penerangan terperinci tentang dan lihat di atas di bawah komit dan daripada.

LF selepas arahan adalah pilihan (ia diperlukan).

Arahan set semula juga boleh digunakan untuk mencipta teg ringan (tidak beranotasi). Untuk
contoh:

tetapkan semula rujukan/tag/938
daripada: 938

akan mencipta refs/tags/938 teg ringan merujuk kepada sebarang tanda komit :938
rujukan.

tompok
Meminta menulis satu semakan fail pada fail pek. Semakan tidak disambungkan kepada mana-mana
komited; sambungan ini mesti dibentuk dalam arahan komit berikutnya dengan merujuk kepada
gumpalan melalui tanda yang ditetapkan.

'gumpal' LF
tandakan?
data

Perintah tanda adalah pilihan di sini kerana beberapa bahagian hadapan telah memilih untuk menjana Git SHA-1
untuk gumpalan itu sendiri, dan suapkannya secara langsung untuk melakukan. Ini biasanya lebih banyak kerja
daripada nilainya walau bagaimanapun, kerana tanda adalah murah untuk disimpan dan mudah digunakan.

data
Membekalkan data mentah (untuk digunakan sebagai kandungan gumpalan/fail, komit mesej atau teg beranotasi
mesej) untuk mengimport pantas. Data boleh dibekalkan menggunakan kiraan bait yang tepat atau dihadkan dengan
garisan penamat. Bahagian hadapan sebenar yang bertujuan untuk penukaran kualiti pengeluaran harus
sentiasa gunakan format kiraan bait yang tepat, kerana ia lebih teguh dan berprestasi lebih baik. The
format terhad bertujuan terutamanya untuk menguji import cepat.

Baris komen yang muncul dalam sebahagian daripada arahan data sentiasa diambil untuk menjadi sebahagian
badan data dan oleh itu tidak pernah diabaikan oleh import cepat. Ini menjadikannya selamat
untuk mengimport sebarang kandungan fail/mesej yang barisnya mungkin bermula dengan #.

Format kiraan bait tepat
Bahagian hadapan mesti menyatakan bilangan bait data.

'data' SP LF
LF?

di mana ialah bilangan tepat bait yang terdapat dalam . Nilai
dinyatakan sebagai integer perpuluhan ASCII. LF di kedua-dua belah ialah
tidak termasuk dalam dan tidak akan dimasukkan ke dalam data yang diimport.

LF selepas itu adalah pilihan (dahulunya diperlukan) tetapi disyorkan. Sentiasa
termasuk ia menjadikan penyahpepijatan aliran import pantas lebih mudah kerana arahan seterusnya sentiasa
bermula dalam lajur 0 baris seterusnya, walaupun jika tidak berakhir dengan LF.

Format terhad
Rentetan pembatas digunakan untuk menandakan penghujung data. import cepat akan mengira
panjang dengan mencari pembatas. Format ini berguna terutamanya untuk ujian dan
tidak disyorkan untuk data sebenar.

'data' SP '<<' LF
LF
LF
LF?

di mana ialah rentetan pembatas yang dipilih. Rentetan itu tidak boleh muncul pada a
garisan dengan sendirinya di dalam , kerana sebaliknya import cepat akan menganggap data berakhir lebih awal
daripada yang sebenarnya. LF segera mengekori adalah sebahagian daripada . Ini adalah satu
daripada batasan format yang dibataskan, adalah mustahil untuk membekalkan sebahagian data
yang tidak mempunyai LF sebagai bait terakhirnya.

LF selepas itu LF adalah pilihan (dahulunya diperlukan).

pemeriksaan
Memaksa import pantas untuk menutup fail pek semasa, memulakan yang baharu dan menyimpan semua
rujukan cawangan semasa, tag dan tanda.

'checkpoint' LF
LF?

Ambil perhatian bahawa import cepat menukar fail pek secara automatik apabila fail pek semasa sampai
--max-pack-size, atau 4 GiB, mana-mana had yang lebih kecil. Semasa suis fail pek automatik
import cepat tidak mengemas kini rujukan cawangan, tag atau tanda.

Sebagai pusat pemeriksaan boleh memerlukan sejumlah besar masa CPU dan cakera IO (untuk mengira
pek keseluruhan SHA-1 checksum, jana fail indeks yang sepadan dan kemas kini rujukan)
ia boleh mengambil masa beberapa minit dengan mudah untuk satu arahan pusat pemeriksaan selesai.

Frontend boleh memilih untuk mengeluarkan pusat pemeriksaan semasa import yang sangat besar dan berjalan lama,
atau apabila mereka perlu membenarkan akses proses Git lain kepada cawangan. Namun memandangkan 30
Repositori Subversion GiB boleh dimuatkan ke dalam Git melalui import pantas dalam masa kira-kira 3 jam,
pemeriksaan yang jelas mungkin tidak diperlukan.

LF selepas arahan adalah pilihan (ia diperlukan).

kemajuan
Menyebabkan import pantas untuk mencetak keseluruhan baris kemajuan tanpa diubah suai kepada output standardnya
saluran (deskriptor fail 1) apabila arahan diproses daripada aliran input. The
arahan sebaliknya tidak mempunyai kesan ke atas import semasa, atau pada mana-mana dalaman import cepat
negeri.

'kemajuan' SP LF
LF?

The sebahagian daripada arahan itu mungkin mengandungi sebarang jujukan bait yang tidak mengandungi LF.
LF selepas arahan adalah pilihan. Pemanggil mungkin ingin memproses output melalui a
alat seperti sed untuk mengalih keluar bahagian utama baris, contohnya:

bahagian hadapan | git fast-import | sed 's/^progress //'

Meletakkan arahan kemajuan serta-merta selepas pusat pemeriksaan akan memberitahu pembaca apabila
pusat pemeriksaan telah selesai dan ia boleh mengakses dengan selamat rujukan yang dikemas kini dengan cepat import.

mendapat-tanda
Menyebabkan import cepat untuk mencetak SHA-1 yang sepadan dengan tanda untuk stdout atau pada fail
deskriptor sebelum ini disusun dengan argumen --cat-blob-fd. Perintah sebaliknya mempunyai
tiada kesan ke atas import semasa; tujuannya adalah untuk mendapatkan semula SHA-1 yang kemudiannya dilakukan
mungkin ingin merujuk dalam mesej komit mereka.

'get-mark' SP ':' LF

Perintah ini boleh digunakan di mana-mana dalam strim yang komen diterima. khususnya,
arahan get-mark boleh digunakan di tengah-tengah komit tetapi bukan di tengah-tengah data
perintah.

Lihat “Respons To Commands” di bawah untuk mendapatkan butiran tentang cara membaca output ini dengan selamat.

gumpalan kucing
Menyebabkan import cepat mencetak gumpalan ke deskriptor fail yang sebelumnya disusun dengan
--cat-blob-fd hujah. Perintah sebaliknya tidak mempunyai kesan ke atas import semasa; itu
tujuan utama adalah untuk mendapatkan gumpalan yang mungkin berada dalam ingatan import cepat tetapi tidak boleh diakses
daripada repositori sasaran.

'kucing-gumpal' SP LF

The boleh menjadi rujukan tanda (: ) ditetapkan sebelum ini atau 40-bait penuh
SHA-1 gumpalan Git, sedia ada atau sedia untuk ditulis.

Output menggunakan format yang sama seperti git cat-file --batch:

SP 'gumpal' SP LF
LF

Perintah ini boleh digunakan di mana-mana dalam strim yang komen diterima. khususnya,
arahan cat-blob boleh digunakan di tengah-tengah komit tetapi bukan di tengah-tengah data
perintah.

Lihat “Respons To Commands” di bawah untuk mendapatkan butiran tentang cara membaca output ini dengan selamat.

ls
Mencetak maklumat tentang objek pada laluan ke deskriptor fail yang disusun sebelum ini
dengan hujah --cat-blob-fd. Ini membolehkan mencetak gumpalan daripada komit aktif (dengan
cat-blob) atau menyalin gumpalan atau pokok daripada komit sebelumnya untuk digunakan dalam komit semasa
(dengan filemodify).

Perintah ls boleh digunakan di mana-mana dalam strim yang komen diterima, termasuk
tengah commit.

Membaca dari komit aktif
Borang ini hanya boleh digunakan di tengah-tengah komit. Laluan itu menamakan entri direktori
dalam komit aktif fast-import. Laluan mesti dipetik dalam kes ini.

'ls' SP LF

Membaca dari pokok bernama
The boleh jadi rujukan markah (: ) atau SHA-40 1-bait penuh bagi Git
tag, komit, atau objek pokok, sedia ada atau menunggu untuk ditulis. Jalannya ialah
berbanding dengan aras atas pokok yang dinamakan oleh .

'ls' SP SP LF

Lihat filemodify di atas untuk penerangan terperinci tentang .

Output menggunakan format yang sama seperti git ls-tree -- :

SP ('gumpalan' | 'pokok' | 'komit') SP HT LF

The mewakili gumpalan, pokok atau objek komit di dan boleh digunakan dalam
kemudian mendapat-tanda, gumpalan kucing, filemodify, Atau ls menyuruh.

Jika tiada fail atau subtree di laluan itu, pergi import cepat sebaliknya akan melaporkan

kehilangan SP LF

Lihat “Respons To Commands” di bawah untuk mendapatkan butiran tentang cara membaca output ini dengan selamat.

ciri
Memerlukan import cepat menyokong ciri yang ditentukan, atau batalkan jika tidak.

'ciri' SP ('=' )? LF

The sebahagian daripada arahan itu mungkin salah satu daripada yang berikut:

format tarikh, tanda eksport, tanda relatif, tiada tanda relatif, paksaan
Bertindak seolah-olah pilihan baris perintah yang sepadan dengan peneraju -- telah diteruskan
baris arahan (lihat OPTIONS, di atas).

tanda-import, tanda-import-jika-ada
Seperti --import-marks kecuali dalam dua aspek: pertama, hanya satu "ciri import-marks" atau
Perintah "feature import-marks-if-exists" dibenarkan setiap strim; kedua, an
--import-marks= atau --import-marks-jika-wujud pilihan baris arahan mengatasi mana-mana daripada ini
arahan "ciri" dalam strim; ketiga, "ciri import-tanda-jika-wujud" seperti a
pilihan baris arahan yang sepadan secara senyap melangkau fail yang tidak wujud.

get-mark, cat-blob, ls
Memerlukan bahagian belakang menyokong mendapat-tanda, gumpalan kucing, Atau ls arahan masing-masing.
Versi import cepat yang tidak menyokong arahan yang ditentukan akan keluar dengan mesej
menunjukkan begitu. Ini membolehkan ralat import keluar awal dengan mesej yang jelas, bukannya
membuang masa pada bahagian awal import sebelum arahan yang tidak disokong adalah
dikesan.

nota
Memerlukan bahagian belakang menyokong ubah suai nota (N) subperintah kepada melakukan perintah.
Versi nota tidak menyokong import pantas akan keluar dengan mesej yang menyatakan demikian.

dilakukan
Ralat keluar jika strim tamat tanpa a dilakukan perintah. Tanpa ciri ini, ralat
menyebabkan hujung hadapan ditamatkan secara tiba-tiba pada titik yang sesuai dalam aliran boleh pergi
tidak dapat dikesan. Ini mungkin berlaku, sebagai contoh, jika bahagian hadapan import mati pada pertengahan operasi
tanpa mengeluarkan SIGTERM atau SIGKILL pada contoh import cepat git bawahannya.

pilihan
Memproses pilihan yang ditentukan supaya git fast-import berkelakuan dengan cara yang sesuai dengan
keperluan frontend. Ambil perhatian bahawa pilihan yang ditentukan oleh bahagian hadapan ditindih oleh mana-mana
pilihan yang boleh ditentukan oleh pengguna untuk git fast-import sendiri.

'pilihan' SP LF

The sebahagian daripada arahan mungkin mengandungi mana-mana pilihan yang disenaraikan dalam OPTIONS
bahagian yang tidak mengubah semantik import, tanpa peneraju -- dan dirawat di
cara yang sama.

Arahan pilihan mestilah arahan pertama pada input (tidak mengira arahan ciri),
untuk memberikan arahan pilihan selepas sebarang arahan bukan pilihan adalah ralat.

Pilihan baris arahan berikut mengubah semantik import dan oleh itu mungkin tidak diluluskan
sebagai pilihan:

· format tarikh

· tanda import

· tanda eksport

· cat-blob-fd

· memaksa

dilakukan
Jika ciri selesai tidak digunakan, anggap seolah-olah EOF telah dibaca. Ini boleh digunakan untuk memberitahu
import cepat untuk selesai awal.

Jika pilihan baris perintah --done atau arahan feature done sedang digunakan, arahan done ialah
wajib dan menandakan tamat aliran.

RESPONS KEPADA PERINTAH


Objek baharu yang ditulis oleh import cepat tidak tersedia serta-merta. Paling cepat-import
arahan tidak mempunyai kesan yang boleh dilihat sehingga pusat pemeriksaan seterusnya (atau selesai). Bahagian hadapan
boleh menghantar arahan untuk mengisi paip input import cepat tanpa perlu risau tentang seberapa cepat ia
akan berkuat kuasa, yang meningkatkan prestasi dengan memudahkan penjadualan.

Walau bagaimanapun, untuk sesetengah bahagian hadapan, adalah berguna untuk dapat membaca kembali data daripada semasa
repositori semasa ia dikemas kini (contohnya apabila bahan sumber menerangkan objek
dari segi tampalan untuk digunakan pada objek yang diimport sebelum ini). Ini boleh jadi
dicapai dengan menyambungkan bahagian hadapan dan import pantas melalui paip dua arah:

mkfifo fast-import-output
bahagian hadapan
git fast-import >fast-import-output

Persediaan bahagian hadapan dengan cara ini boleh menggunakan arahan kemajuan, get-mark, ls dan cat-blob untuk membaca
maklumat daripada import yang sedang dijalankan.

Untuk mengelakkan kebuntuan, bahagian hadapan tersebut mesti menggunakan sepenuhnya sebarang keluaran yang belum selesai daripada
kemajuan, ls, get-mark dan cat-blob sebelum melakukan penulisan untuk mengimport pantas yang mungkin
blok.

TUDUNG LAPORAN


Jika import cepat dibekalkan input tidak sah ia akan ditamatkan dengan status keluar bukan sifar dan
buat laporan ranap sistem di peringkat atas repositori Git yang diimport ke dalamnya. ranap
laporan mengandungi gambaran keadaan import pantas dalaman serta yang terkini
arahan yang membawa kepada kemalangan.

Semua arahan terkini (termasuk ulasan strim, perubahan fail dan arahan kemajuan) adalah
ditunjukkan dalam sejarah arahan dalam laporan ranap sistem, tetapi data fail mentah dan komit
mesej dikecualikan daripada laporan ranap sistem. Pengecualian ini menjimatkan ruang dalam laporan
fail dan mengurangkan jumlah penimbalan yang mesti dilakukan oleh import pantas semasa pelaksanaan.

Selepas menulis laporan ranap import cepat akan menutup fail pek semasa dan mengeksport fail
jadual markah. Ini membolehkan pembangun bahagian hadapan memeriksa keadaan repositori dan menyambung semula
import dari titik di mana ia ranap. Cawangan dan tag yang diubah suai tidak dikemas kini
semasa ranap sistem, kerana import tidak berjaya diselesaikan. Maklumat cawangan dan tag
boleh didapati dalam laporan ranap sistem dan mesti digunakan secara manual jika kemas kini diperlukan.

Contoh ranap:

$ kucing >dalam <
# komitmen ujian pertama saya
buat rujukan/ketua/tuan
komiter Shawn O. Pearce 19283 -0400
# siapa lelaki itu?
data <
ini adalah komitmen saya
EOF
M 644 sebaris .gitignore
data <
.giignore
EOF
M 777 bob sebaris
END_OF_INPUT

$ git fast-import
maut: Mod rasuah: M 777 inline bob
import cepat: membuang laporan ranap sistem ke .git/fast_import_crash_8434

$ cat .git/fast_import_crash_8434
laporan ranap import pantas:
proses import pantas: 8434
proses ibu bapa : 1391
pada Sabtu 1 Sep 00:58:12 2007

maut: Mod rasuah: M 777 inline bob

Perintah Terkini Sebelum Ranap
---------------------------------
# komitmen ujian pertama saya
buat rujukan/ketua/tuan
komiter Shawn O. Pearce 19283 -0400
# siapa lelaki itu?
data <
M 644 sebaris .gitignore
data <
* M 777 bob sebaris

LRU Cawangan Aktif
-----------------
aktif_cawangan = 1 cur, 5 maks

nama jam pos
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1) 0 rujukan/ketua/tuan

Cawangan Tidak Aktif
-----------------
rujukan/ketua/guru:
status : aktif dimuatkan kotor
komitmen tip : 0000000000000000000000000000000000000000
pokok lama : 0000000000000000000000000000000000000000
pokok cur : 0000000000000000000000000000000000000000
komit jam: 0
pek terakhir:

-------------------
TAMAT LAPORAN RAPAT

TIP DAN TRIK


Petua dan helah berikut telah dikumpulkan daripada pelbagai pengguna import cepat, dan
ditawarkan di sini sebagai cadangan.

Penggunaan satu Menandakan untuk komited
Apabila melakukan penukaran repositori, gunakan tanda unik setiap komit (mark : ) dan bekalan
pilihan --export-marks pada baris arahan. fast-import akan membuang fail yang menyenaraikan
setiap tanda dan objek Git SHA-1 yang sepadan dengannya. Jika bahagian hadapan boleh mengikat
menandakan kembali ke repositori sumber, mudah untuk mengesahkan ketepatan dan kesempurnaan
import dengan membandingkan setiap komit Git dengan semakan sumber yang sepadan.

Datang daripada sistem seperti Perforce atau Subversion ini sepatutnya agak mudah, kerana
tanda import cepat juga boleh menjadi nombor set perubahan Perforce atau semakan Subversion
nombor.

Secara bebas Langkau sekitar Cawangan
Jangan bersusah payah cuba mengoptimumkan bahagian hadapan untuk melekat pada satu cawangan pada satu masa semasa
import. Walaupun berbuat demikian mungkin lebih pantas sedikit untuk import pantas, ia cenderung meningkat
kerumitan kod bahagian hadapan dengan ketara.

LRU cawangan terbina untuk import cepat cenderung berkelakuan sangat baik, dan kos
mengaktifkan cawangan tidak aktif adalah sangat rendah sehingga melantun di antara dahan
hampir tiada kesan ke atas prestasi import.

pengendalian Menamakan semula
Apabila mengimport fail atau direktori yang dinamakan semula, hanya padamkan nama lama dan ubah suai
nama baharu semasa komit yang sepadan. Git melakukan pengesanan nama semula selepas fakta,
dan bukannya secara eksplisit semasa komit.

Penggunaan Tag Perbaiki Cawangan
Sesetengah sistem SCM lain membenarkan pengguna mencipta teg daripada berbilang fail yang bukan daripadanya
komitmen/perubahan yang sama. Atau untuk membuat teg yang merupakan subset daripada fail yang tersedia
repositori.

Mengimport teg ini sebagaimana adanya dalam Git adalah mustahil tanpa membuat sekurang-kurangnya satu komit yang mana
"membetulkan" fail agar sepadan dengan kandungan teg. Gunakan perintah set semula import cepat untuk
tetapkan semula cawangan dummy di luar ruang cawangan biasa anda kepada komit asas untuk teg,
kemudian komit satu atau lebih pembetulan fail commit, dan akhirnya tag cawangan dummy.

Contohnya kerana semua cawangan biasa disimpan di bawah rujukan/kepala/ namakan penetapan teg
cawangan TAG_FIXUP. Dengan cara ini adalah mustahil untuk cawangan fixup yang digunakan oleh pengimport untuk
mempunyai konflik ruang nama dengan cawangan sebenar yang diimport daripada sumber (nama TAG_FIXUP
bukan rujukan/kepala/TAG_FIXUP).

Apabila melakukan pembetulan, pertimbangkan untuk menggunakan gabungan untuk menyambungkan komit yang membekalkan
semakan fail ke cawangan fixup. Melakukannya akan membolehkan alat seperti pergi menyalahkan untuk mengesan
melalui sejarah komit sebenar dan beri anotasi fail sumber dengan betul.

Selepas import pantas ditamatkan bahagian hadapan perlu melakukan rm .git/TAG_FIXUP untuk mengalih keluar
cawangan dummy.

Mengimport Kini, Bungkus semula Kemudian
Sebaik sahaja import pantas melengkapkan repositori Git sah sepenuhnya dan sedia untuk digunakan.
Biasanya ini hanya mengambil masa yang singkat, walaupun untuk projek yang agak besar
(100,000+ komitmen).

Walau bagaimanapun, pembungkusan semula repositori adalah perlu untuk meningkatkan lokasi dan akses data
prestasi. Ia juga boleh mengambil masa berjam-jam untuk projek yang sangat besar (terutamanya jika -f dan a
parameter --window besar digunakan). Memandangkan pembungkusan semula adalah selamat untuk dijalankan bersama pembaca dan
penulis, jalankan pek semula di latar belakang dan biarkan ia selesai apabila ia selesai. Tidak ada
sebab menunggu untuk meneroka projek Git baharu anda!

Jika anda memilih untuk menunggu pembungkusan semula, jangan cuba jalankan penanda aras atau ujian prestasi
sehingga pembungkusan semula selesai. import cepat mengeluarkan fail pek suboptimum yang ringkas
tidak pernah dilihat dalam situasi penggunaan sebenar.

Mengemas semula Sejarah Tarikh
Jika anda membungkus semula data import yang sangat lama (cth lebih lama daripada tahun lepas), pertimbangkan
menghabiskan sedikit masa CPU tambahan dan membekalkan --window=50 (atau lebih tinggi) apabila anda menjalankan pergi
bungkus semula. Ini akan mengambil masa yang lebih lama, tetapi juga akan menghasilkan fail pek yang lebih kecil. Anda hanya perlu
luangkan usaha sekali, dan semua orang yang menggunakan projek anda akan mendapat manfaat daripada projek yang lebih kecil
repositori.

Termasuk Sesetengah Kemajuan mesej-mesej
Sekali-sekala minta bahagian hadapan anda mengeluarkan mesej kemajuan untuk mengimport pantas. The
kandungan mesej adalah dalam bentuk bebas sepenuhnya, jadi satu cadangan adalah untuk mengeluarkannya
bulan dan tahun semasa setiap kali tarikh komit semasa berpindah ke bulan berikutnya. awak
pengguna akan berasa lebih baik apabila mengetahui jumlah aliran data yang telah diproses.

PACKFILE PENGOPTIMUMAN


Apabila mengemas gumpalan import cepat sentiasa cuba untuk mengecil terhadap gumpalan terakhir yang ditulis.
Melainkan diatur secara khusus oleh bahagian hadapan, ini mungkin bukan keutamaan
versi fail yang sama, jadi delta yang dihasilkan tidak akan menjadi sekecil mungkin. The
packfile yang terhasil akan dimampatkan, tetapi tidak akan optimum.

Bahagian hadapan yang mempunyai akses cekap kepada semua semakan satu fail (contohnya
membaca fail RCS/CVS ,v) boleh memilih untuk membekalkan semua semakan fail itu sebagai urutan
arahan gumpalan berturut-turut. Ini membolehkan import pantas untuk mengecilkan fail yang berbeza
semakan terhadap satu sama lain, menjimatkan ruang dalam fail pek akhir. Markah boleh digunakan untuk
kemudian mengenal pasti semakan fail individu semasa urutan arahan komit.

Fail pek yang dicipta oleh import pantas tidak menggalakkan corak capaian cakera yang baik. Ini adalah
disebabkan oleh import cepat menulis data mengikut susunan ia diterima pada input standard,
manakala Git biasanya mengatur data dalam fail pek untuk membuat yang paling terkini (petua semasa)
data muncul sebelum data sejarah. Git juga kluster melakukan bersama-sama, mempercepatkan
lintasan semakan melalui lokaliti cache yang lebih baik.

Atas sebab ini adalah sangat disyorkan bahawa pengguna mengemas semula repositori dengan git
repack -a -d selepas import cepat selesai, membenarkan Git menyusun semula fail pek untuk
capaian data yang lebih pantas. Jika delta gumpalan adalah suboptimum (lihat di atas) maka tambahkan -f
pilihan untuk memaksa pengiraan semula semua delta boleh mengurangkan fail pek akhir dengan ketara
saiz (30-50% lebih kecil boleh menjadi agak tipikal).

MEMORY PENGGUNAAN


Terdapat beberapa faktor yang mempengaruhi jumlah memori yang diperlukan oleh import pantas untuk berprestasi
sesuatu import. Seperti bahagian kritikal teras Git, import pantas menggunakan pengagih memorinya sendiri
untuk melunaskan sebarang overhed yang berkaitan dengan malloc. Dalam amalan import cepat cenderung
melunaskan sebarang overhed malloc kepada 0, disebabkan penggunaan peruntukan blok yang besar.

untuk objek
fast-import mengekalkan struktur dalam memori untuk setiap objek yang ditulis dalam pelaksanaan ini.
Pada sistem 32 bit strukturnya ialah 32 bait, pada sistem 64 bit strukturnya ialah 40 bait
(disebabkan saiz penunjuk yang lebih besar). Objek dalam jadual tidak diagihkan sehingga
import cepat ditamatkan. Mengimport 2 juta objek pada sistem 32 bit akan memerlukan
kira-kira 64 MiB memori.

Jadual objek sebenarnya adalah jadual hash yang dikunci pada nama objek (SH-1 yang unik). ini
konfigurasi storan membenarkan import pantas untuk menggunakan semula objek sedia ada atau sudah bertulis
dan elakkan menulis pendua pada fail pek output. Gumpalan pendua sangat mengejutkan
biasa dalam import, biasanya disebabkan gabungan cawangan dalam sumber.

untuk tanda
Tanda disimpan dalam tatasusunan yang jarang, menggunakan 1 penuding (4 bait atau 8 bait, bergantung pada
saiz penunjuk) setiap markah. Walaupun tatasusunan jarang, bahagian hadapan masih kukuh
digalakkan menggunakan markah antara 1 dan n, dengan n ialah jumlah markah yang diperlukan untuk
import ini.

untuk cawangan
Cawangan dikelaskan sebagai aktif dan tidak aktif. Penggunaan memori kedua-dua kelas ialah
ketara berbeza.

Cawangan tidak aktif disimpan dalam struktur yang menggunakan 96 atau 120 bait (32 bit atau 64 bit
sistem, masing-masing), ditambah dengan panjang nama cawangan (biasanya di bawah 200 bait),
setiap cawangan. import cepat akan dengan mudah mengendalikan sebanyak 10,000 cawangan tidak aktif di bawah 2 tahun
MiB ingatan.

Cawangan aktif mempunyai overhed yang sama seperti cawangan tidak aktif, tetapi juga mengandungi salinan
setiap pokok yang telah diubah suai baru-baru ini pada dahan itu. Jika subtree include belum
diubah suai sejak cawangan menjadi aktif, kandungannya tidak akan dimuatkan ke dalam memori, tetapi
jika subtree src telah diubah suai oleh komit sejak cawangan menjadi aktif, maka ia
kandungan akan dimuatkan dalam ingatan.

Memandangkan cawangan aktif menyimpan metadata tentang fail yang terkandung pada cawangan itu, mereka
saiz storan dalam memori boleh membesar kepada saiz yang besar (lihat di bawah).

import cepat secara automatik memindahkan cawangan aktif kepada status tidak aktif berdasarkan yang mudah
algoritma yang paling kurang digunakan baru-baru ini. Rantaian LRU dikemas kini pada setiap arahan komit. The
bilangan maksimum cawangan aktif boleh ditambah atau dikurangkan pada baris arahan dengan
--cawangan-aktif=.

untuk aktif pokok
Pokok (alias direktori) menggunakan hanya 12 bait memori di atas memori yang diperlukan untuk
entri mereka (lihat "setiap fail aktif" di bawah). Kos pokok adalah hampir 0, kerana ia
overhed melunaskan ke atas entri fail individu.

untuk aktif fail kemasukan
Fail (dan penunjuk kepada subpokok) dalam pepohon aktif memerlukan 52 atau 64 bait (32/64 bit
platform) setiap kemasukan. Untuk menjimatkan ruang, nama fail dan pokok dikumpulkan dalam rentetan biasa
jadual, membenarkan nama fail "Makefile" menggunakan hanya 16 bait (selepas memasukkan rentetan
header overhead) tidak kira berapa kali ia berlaku dalam projek.

LRU cawangan aktif, apabila digabungkan dengan kumpulan rentetan nama fail dan pemuatan malas
pokok kecil, membolehkan import pantas mengimport projek dengan cekap dengan 2,000+ cawangan dan
45,114+ fail dalam jejak memori yang sangat terhad (kurang daripada 2.7 MiB setiap cawangan aktif).

ISYARAT


Menghantar SIGUSR1 kepada pergi import cepat proses menamatkan fail pek semasa lebih awal, mensimulasikan
arahan pusat pemeriksaan. Pengendali yang tidak sabar boleh menggunakan kemudahan ini untuk mengintip objek
dan merujuk daripada import yang sedang dijalankan, dengan kos tambahan masa berjalan dan lebih teruk
mampatan.

Gunakan git-fast-import dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    NSIS: Sistem Pemasangan Nullsoft Scriptable
    NSIS: Sistem Pemasangan Nullsoft Scriptable
    NSIS (Nullsoft Scriptable Install
    System) ialah sumber terbuka profesional
    sistem untuk mencipta pemasang Windows. Ia
    direka bentuk sekecil dan fleksibel
    mungkin...
    Muat turun NSIS: Nullsoft Scriptable Install System
  • 2
    pas pengesahan
    pas pengesahan
    AuthPass ialah kata laluan sumber terbuka
    pengurus dengan sokongan untuk yang popular dan
    terbukti Keepass (kdbx 3.x DAN kdbx 4.x ...
    Muat turun autopass
  • 3
    Zabbix
    Zabbix
    Zabbix adalah terbuka kelas perusahaan
    penyelesaian pemantauan teragih sumber
    direka untuk memantau dan menjejaki
    prestasi dan ketersediaan rangkaian
    pelayan, peranti...
    Muat turun Zabbix
  • 4
    KDiff3
    KDiff3
    Repositori ini tidak lagi diselenggara
    dan disimpan untuk tujuan arkib. Lihat
    https://invent.kde.org/sdk/kdiff3 for
    kod terbaru dan
    https://download.kde.o...
    Muat turun KDiff3
  • 5
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX ialah GUI untuk
    Pemuat USB Waninkoko, berdasarkan
    libwiigui. Ia membenarkan penyenaraian dan
    melancarkan permainan Wii, permainan Gamecube dan
    homebrew di Wii dan WiiU...
    Muat turun USBLoaderGX
  • 6
    Firebird
    Firebird
    Firebird RDBMS menawarkan ciri ANSI SQL
    & berjalan pada Linux, Windows &
    beberapa platform Unix. ciri-ciri
    konkurensi & prestasi cemerlang
    & kuasa...
    Muat turun Firebird
  • Lebih »

Arahan Linux

Ad