Perintah pengelolaan¶
Catatan
Menjalankan perintah manajemen di bawah pengguna yang berbeda dari yang menjalankan server web Anda dapat mengakibatkan berkas mendapatkan izin yang salah, silakan periksa Izin sistem berkas untuk rincian lebih lanjut.
Anda akan menemukan perintah pengelolaan dasar (tersedia sebagai ./manage.py dalam sumber Django, atau sebagai rangkaian yang diperluas dalam skrip yang disebut weblate yang dapat dipasang di atas Weblate).
Memanggil perintah pengelolaan¶
Seperti disebutkan sebelumnya, pemanggilan bergantung pada bagaimana Anda memasang Weblate.
If using a Python environment for Weblate, you can either specify the full path to weblate, or activate the Python environment prior to invoking it:
# Direct invocation
~/weblate-env/bin/weblate
# Activating Python environment adds it to search path
. ~/weblate-env/bin/activate
weblate
Jika Anda menggunakan kode sumber secara langsung (baik dari tarball atau Git checkout), skrip pengelolaannya adalah ./manage.py yang tersedia di sumber Weblate. Untuk menjalankannya:
python ./manage.py list_versions
If you've installed Weblate using the pip installer, or by using the ./setup.py
script, the weblate is installed to your path (or Python environment path),
from where you can use it to control Weblate:
weblate list_versions
Untuk gambar Docker, skrip dipasang seperti di atas, dan Anda dapat menjalankannya menggunakan docker exec:
docker exec --user weblate <container> weblate list_versions
Untuk docker-compose-plugin prosesnya serupa, Anda hanya perlu menggunakan docker compose exec:
docker compose exec --user weblate weblate weblate list_versions
Jika Anda perlu memberikannya sebuah berkas, Anda dapat menambahkan volume sementara:
docker compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json
add_suggestions¶
- weblate add_suggestions <project> <component> <language> <file>¶
Mengimpor terjemahan dari berkas untuk digunakan sebagai saran terjemahan yang diberikan. Terjemahan yang digandakan akan dilewati; hanya terjemahan yang berbeda yang ditambahkan.
- --author USER@EXAMPLE.COM¶
E-mail of author for the suggestions. This user has to exist prior to importing (you can create one in the admin interface if needed).
Contoh:
weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po
auto_translate¶
- weblate auto_translate <project> <component> <language>¶
Berubah pada versi 4.6: Menambahkan parameter untuk mode terjemahan.
Melakukan terjemahan otomatis berdasarkan terjemahan komponen lainnya.
- --source PROJECT/COMPONENT¶
Specifies the component to use as source available for translation. If not specified all components in the project are used.
- --user USERNAME¶
Specify username listed as author of the translations. "Anonymous user" is used if not specified.
- --overwrite¶
Whether to overwrite existing translations.
- --inconsistent¶
Whether to overwrite existing translations that are inconsistent (see Tidak konsisten).
- --add¶
Automatically add language if a given translation does not exist.
- --mt MT¶
Use machine translation instead of other components as machine translations.
- --threshold THRESHOLD¶
Similarity threshold for machine translation, defaults to 80.
- --mode MODE¶
Specify translation mode, default is
translatebutfuzzyorsuggestcan be used.
Contoh:
weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs
Lihat juga
backup¶
- weblate backup¶
Runs configured backups synchronously, without using Celery. It first updates
the settings and database backup dumps in DATA_DIR, then runs the
selected Borg backup service or services.
- --list¶
Lists configured backup service IDs.
- --service ID¶
Runs one backup service by ID.
- --all¶
Runs all enabled backup services.
Use Django's standard --verbosity 2 option to show backup service output.
Failed backup service output is shown even without increased verbosity.
Contoh:
weblate backup --list
weblate backup --service 1 --verbosity 2
weblate backup --all
For Docker Compose deployments, you can stop the regular Weblate container and run the command in a one-off container using docker compose run. The database and configured backup storage still need to be available.
docker compose stop weblate
docker compose run --rm --user weblate weblate weblate backup --list
docker compose run --rm --user weblate weblate weblate backup --service 1 --verbosity 2
Lihat juga
benchmark¶
- weblate benchmark¶
Mengimpor konten yang diberikan ke Weblate, berguna untuk pembandingan.
# Run benchmark with a profiling
python -m cProfile -o benchmark.prof ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip
# Convert to SVG for visualization
uvx gprof2dot -f pstats benchmark.prof | dot -Tsvg -o benchmark.svg
# Display SVG
firefox ./benchmark.svg
# Run benchmark under memray
uvx memray run ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip
# Render the profile
uvx memray flamegraph ./memray-manage.py.2554179.bin
# Display it
fixefox memray-flamegraph-manage.py.2554179.html
billing_demo¶
- weblate billing_demo¶
Added in version 5.15.
Membuat proyek tagihan demo. Dapat dijalankan beberapa kali untuk menambahkan faktur dan peristiwa tagihan tambahan.
Ini dapat berguna saat mengembangkan Weblate. Membutuhkan Penagihan yang terpasang.
celery_queues¶
- weblate celery_queues¶
Menampilkan panjang antrian tugas Celery.
Lihat juga
checkgit¶
- weblate checkgit <project|project/component>¶
Mencetak status terkini repositori Git back-end.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
commitgit¶
- weblate commitgit <project|project/component>¶
Melakukan komit terhadap kemungkinan perubahan yang tertunda pada repositori Git back-end.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada, atau menggunakan --file-format untuk memfilter berdasarkan format berkas.
commit_pending¶
- weblate commit_pending <project|project/component>¶
Melakukan perubahan tertunda yang lebih lama dari usia tertentu.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
- --age HOURS¶
Age in hours for committing. If not specified the value configured in Konfigurasi komponen is used.
Catatan
Ini dilakukan di latar belakang secara otomatis oleh Weblate, jadi tidak perlu lagi menjalankannya secara manual, selain memaksakan komit lebih awal daripada yang dispesifikasikan oleh Konfigurasi komponen.
cleanuptrans¶
- weblate cleanuptrans¶
Membersihkan pemeriksaan yang tidak terpakai dan saran terjemahan. Biasanya tidak perlu menjalankannya secara manual, karena pembersihan terjadi secara otomatis di latar belakang.
Lihat juga
cleanup_memory¶
- weblate cleanup_memory¶
Added in version 5.13.
Menghapus semua entri yang usang dengan status tertunda dari memori terjemahan.
cleanup_ssh_keys¶
- weblate cleanup_ssh_keys¶
Added in version 4.9.1.
Melakukan pembersihan kunci hos SSH yang tersimpan:
Menghapus kunci RSA yang ditinggalkan untuk GitHub yang mungkin menyebabkan isu saat menghubungkan ke GitHub.
Menghapus entri ganda pada kunci hos.
Lihat juga
createadmin¶
- weblate createadmin¶
Membuat akun admin dengan kata sandi acak, kecuali jika dispesifikasikan.
- --password PASSWORD¶
Provides a password on the command-line, to not generate a random one.
- --no-password¶
Do not set password, this can be useful with --update.
- --username USERNAME¶
Use the given name instead of
admin.
- --email USER@EXAMPLE.COM¶
Specify the admin e-mail address.
- --name¶
Specify the admin name (visible).
- --update¶
Update the existing user (you can use this to change passwords).
dump_memory¶
- weblate dump_memory¶
Ekspor berkas JSON yang berisi konten Memori Terjemahan Weblate.
dumpuserdata¶
- weblate dumpuserdata <file.json>¶
Membuang data pengguna ke berkas untuk digunakan kemudian oleh importuserdata.
Petunjuk
Ini berguna saat melakukan migrasi atau penggabungan instansi Weblate.
import_demo¶
- weblate import_demo¶
Added in version 4.1.
Membuat proyek demo dengan komponen berdasarkan <https://github.com/WeblateOrg/demo>. Pastikan tugas celery berjalan sebelum menjalankan perintah ini.
Ini dapat berguna saat mengembangkan Weblate.
- --delete¶
Removes existing demo project.
import_json¶
- weblate import_json <json-file>¶
Impor komponen secara penjumlahan berdasarkan data JSON.
Struktur berkas JSON yang diimpor kurang lebih sama dengan objek komponen (lihat GET /api/components/(string:project)/(string:component)/). Anda harus menyertakan kolom name dan filemask.
- --project PROJECT¶
Specifies where the components will be imported from.
- --main-component COMPONENT¶
Use the given VCS repository from this component for all of them.
- --ignore¶
Skip (already) imported components.
- --update¶
Update (already) imported components.
Contoh berkas JSON:
[
{
"slug": "po",
"name": "Gettext PO",
"file_format": "po",
"filemask": "po/*.po",
"new_lang": "none"
},
{
"name": "Android",
"filemask": "android/values-*/strings.xml",
"template": "android/values/strings.xml",
"repo": "weblate://test/test",
"file_format": "aresource"
}
]
Lihat juga
import_memory¶
- weblate import_memory <file>¶
Mengimpor berkas ke dalam memori terjemahan Weblate.
Format berkas yang didukung adalah TMX, JSON, XLIFF, PO, CSV.
Menspesifikasikan bahasa sumber dan bahasa target mungkin diperlukan untuk format selain JSON dan TMX.
- --language-map LANGMAP¶
Allows mapping languages in the TMX to the Weblate translation memory. The language codes are mapped after normalization usually done by Weblate.
--language-map en_US:enwill for example import allen_USstrings asenones.This can be useful in case your TMX file locales happen not to match what you use in Weblate.
- --source-language SOURCE_LANG¶
Specifies the source language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.
- --target-language TARGET_LANG¶
Specifies the target language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.
import_project¶
- weblate import_project <project> <gitrepo> <branch> <filemask>¶
Mengimpor komponen secara penjumlahan ke dalam proyek berdasarkan mask berkas. Ini didasarkan pada pengaya Penemuan komponen, jadi Anda mungkin ingin menggunakannya sebagai gantinya.
<project> memberi nama proyek yang sudah ada, tempat komponen akan diimpor.
<gitrepo> mendefinisikan URL repositori Git yang akan digunakan, dan <branch> menandakan cabang Git. Untuk mengimpor komponen terjemahan tambahan dari komponen Weblate yang sudah ada, gunakan URL weblate://<project>/<component> untuk <gitrepo>.
<filemask> mendefinisikan penemuan berkas untuk repositori. Hal ini dapat disederhanakan dengan menggunakan karakter pengganti, atau dapat memanfaatkan sepenuhnya ekspresi reguler.
Pencocokan sederhana menggunakan ** untuk nama komponen dan * untuk bahasa, misalnya: **/*.po
Ekspresi reguler harus berisi grup bernama komponen dan bahasa, misalnya: (?P<language>[^/]*)/(?P<component>[^-/]*)\.po.
Proses impor ini mencocokkan komponen yang ada berdasarkan berkas dan menambahkan komponen yang belum ada. Proses ini tidak mengubah komponen yang sudah ada.
- --name-template TEMPLATE¶
Customize the name of a component using Django template syntax.
For example:
Documentation: {{ component }}
- --base-file-template TEMPLATE¶
Customize the base file for monolingual translations.
For example:
{{ component }}/res/values/string.xml
- --new-base-template TEMPLATE¶
Customize the base file for addition of new translations.
For example:
{{ component }}/ts/en.ts
- --file-format FORMAT¶
You can also specify the file format to use (see Format berkas lokalisasi), the default is auto-detection.
- --language-regex REGEX¶
You can specify language filtering (see Konfigurasi komponen) with this parameter. It has to be a valid regular expression.
- --main-component¶
You can specify which component will be chosen as the main one—the one actually containing the VCS repository.
- --license NAME¶
Specify the overall, project or component translation license.
- --license-url URL¶
Specify the URL where the translation license is to be found.
- --vcs NAME¶
In case you need to specify which version control system to use, you can do it here. The default version control is Git.
Untuk memberi Anda beberapa contoh, mari coba mengimpor dua proyek.
Pertama Terjemahan Buku Pegangan Debian, di mana setiap bahasa memiliki map terpisah dengan terjemahan setiap bab:
weblate import_project \
debian-handbook \
https://salsa.debian.org/hertzog/debian-handbook.git \
bullseye/main \
'*/**.po'
Kemudian alat Tanaguru, di mana format berkas perlu ditentukan, bersama dengan templat berkas dasar, dan bagaimana semua komponen dan terjemahan ditempatkan dalam satu map:
weblate import_project \
--file-format=properties \
--base-file-template=web-app/tgol-web-app/src/main/resources/i18n/%s-I18N.properties \
tanaguru \
https://github.com/Tanaguru/Tanaguru \
master \
web-app/tgol-web-app/src/main/resources/i18n/**-I18N_*.properties
Contoh yang lebih rumit dari penguraian nama berkas untuk mendapatkan komponen dan bahasa yang benar dari nama berkas seperti src/security/Numerous_security_holes_in_0.10.1.de.po:
weblate import_project \
tails \
git://git.tails.boum.org/tails master \
'wiki/src/security/(?P<component>.*)\.(?P<language>[^.]*)\.po$'
Memfilter hanya terjemahan dalam bahasa yang dipilih:
./manage import_project \
--language-regex '^(cs|sk)$' \
weblate \
https://github.com/WeblateOrg/weblate.git \
'weblate/locale/*/LC_MESSAGES/**.po'
Mengimpor dokumentasi Sphinx dibagi menjadi beberapa berkas:
$ weblate import_project --name-template 'Documentation: %s' \
--file-format po \
project https://github.com/project/docs.git master \
'docs/locale/*/LC_MESSAGES/**.po'
Mengimpor dokumentasi Sphinx dibagi menjadi beberapa berkas dan direktori:
$ weblate import_project --name-template 'Directory 1: %s' \
--file-format po \
project https://github.com/project/docs.git master \
'docs/locale/*/LC_MESSAGES/dir1/**.po'
$ weblate import_project --name-template 'Directory 2: %s' \
--file-format po \
project https://github.com/project/docs.git master \
'docs/locale/*/LC_MESSAGES/dir2/**.po'
Lihat juga
Contoh yang lebih rinci dapat ditemukan di bab Memulai dengan internasionalisasi, atau Anda mungkin ingin menggunakan import_json.
import_projectbackup¶
- weblate import_projectbackup <project_name> <project_slug> <username> <filename>¶
Added in version 5.10.
Mengimpor Cadangan tingkat proyek.
Petunjuk
Biasanya lebih nyaman untuk mengimpor proyek ketika Menambahkan proyek dan komponen terjemahan.
importuserdata¶
- weblate importuserdata <file.json>¶
Mengimpor data pengguna dari berkas yang dibuat oleh dumpuserdata.
importusers¶
- weblate importusers --check <file.json>¶
Mengimpor pengguna dari buangan JSON basis data auth_users Django.
- --check¶
With this option it will just check whether a given file can be imported and report possible conflicts arising from usernames or e-mails.
Anda dapat membuang pengguna dari situs Django yang ada menggunakan:
./manage.py dumpdata auth.User > users.json
Petunjuk
Gunakan dumpuserdata untuk membuang data dari server Weblate lain karena itu juga mencakup pengaturan pengguna.
Lihat juga
install_addon¶
- weblate install_addon --addon ADDON <project|project/component>¶
Memasang pengaya ke serangkaian komponen.
- --addon ADDON¶
Name of the add-on to install. For example
weblate.gettext.customize.
- --configuration CONFIG¶
JSON encoded configuration of an add-on.
- --update¶
Update the existing add-on configuration.
Anda dapat menspesifikasikan proyek atau komponen mana yang akan dipasang pengaya (misalnya weblate/application), atau menggunakan --all untuk menyertakan semua komponen yang ada.
Untuk memasang Hasilkan berkas MO untuk semua komponen:
weblate install_addon --addon weblate.gettext.mo --configuration '{"fuzzy": true}' --update --all
Lihat juga
install_machinery¶
Added in version 4.18.
- weblate install_machinery --service SERVICE¶
Memasang layanan saran otomatis di seluruh situs.
- --service SERVICE¶
Name of the service to install. For example
deepl.
- --configuration CONFIG¶
JSON encoded configuration of a service.
- --update¶
Update the existing service configuration.
Untuk memasang DeepL:
weblate install_machinery --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/v2/"}' --update
Lihat juga
list_addons¶
- weblate list_addons¶
Mencantumkan pengaya dalam reStructuredText sebagai templat untuk Pengaya.
- --sections {events,addons,parameters}¶
Filter the generated output to just the add-on event sections, the built-in add-on sections, or the shared add-on parameter sections. If omitted, all generated sections are shown.
Lihat juga
list_permissions¶
- weblate list_permissions¶
Mencantumkan izin dalam reStructuredText sebagai templat untuk Kontrol akses.
Lihat juga
list_checks¶
- weblate list_checks¶
Mencantumkan pemeriksaan kualitas dalam reStructuredText sebagai templat untuk Pemeriksaan dan perbaikan dan Pemeriksaan dan perbaikan.
- --sections {checks,flags}¶
Filter the generated output to just the quality check sections or the shared check flag sections. If omitted, all generated sections are shown.
Catatan
Using --output requires selecting exactly one value in --sections so
each generated snippet is written to its own file. This matches the
Kontribusikan pada dokumentasi Weblate workflow and the make -C docs
update-docs targets.
Lihat juga
list_languages¶
- weblate list_languages <locale>¶
Mencantumkan bahasa yang didukung dalam markah MediaWiki - kode bahasa, nama dalam Inggris, dan nama berlokalisasi.
Ini digunakan untuk menghasilkan <https://www.l10n.cz/wiki/Slovn%C3%ADky/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF/>.
list_machinery¶
- weblate list_machinery¶
Mencantumkan layanan saran otomatis di reStructuredText sebagai templat untuk Saran otomatis.
Lihat juga
list_translators¶
- weblate list_translators <project|project/component>¶
Mencantumkan penerjemah berdasarkan bahasa yang dikontribusikan untuk proyek yang diberikan:
[French]
Jean Dupont <jean.dupont@example.com>
[English]
John Doe <jd@example.com>
- --language-code¶
List names by language code instead of language name.
Anda dapat menentukan proyek atau komponen mana yang akan digunakan (misalnya weblate/application), atau menggunakan --all untuk mencantumkan penerjemah dari semua komponen yang ada.
list_versions¶
- weblate list_versions¶
Mencantumkan semua dependensi Weblate dan versinya.
list_file_format_params¶
- weblate list_file_format_params¶
Mencantumkan parameter format berkas.
list_change_events¶
- weblate list_change_events¶
Mencantumkan semua jenis peristiwa perubahan yang terjadi.
list_format_features¶
- weblate list_format_features¶
Generates RST documentation snippets describing the supported features for every file format.
The command generates one file for every format, that can be found in the specified output directory.
- --output PATH¶
Directory where the format feature snippets will be written.
Catatan
The generated documentation files are meant to be included in documentation sources such as Format berkas lokalisasi. See also weblate/formats/management/commands/list_format_features.py for customization and merging logic.
loadpo¶
- weblate loadpo <project|project/component>¶
Memuat ulang terjemahan dari disk (misalnya jika Anda telah melakukan beberapa pembaruan dalam repositori VCS).
- --force¶
Force update, even if the files should be up-to-date.
- --lang LANGUAGE¶
Limit processing to a single language.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
Catatan
Anda jarang perlu menjalankan perintah ini, Weblate akan secara otomatis memuat berkas yang diubah untuk setiap pembaruan VCS. Hal ini diperlukan jika Anda mengubah repositori VCS Weblate yang mendasarinya secara manual atau dalam beberapa kasus khusus setelah peningkatan.
lock_translation¶
- weblate lock_translation <project|project/component>¶
Mencegah terjemahan komponen lebih lanjut.
Petunjuk
Berguna jika Anda ingin melakukan pemeliharaan pada repositori yang mendasarinya.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
Lihat juga
migrate¶
- weblate migrate¶
Memigrasikan basis data ke skema Weblate saat ini. Opsi baris perintah dijelaskan di Django migrate.
Petunjuk
Jika Anda ingin menjalankan pemasangan secara non-interaktif, Anda dapat menggunakan weblate migrate --noinput, lalu membuat pengguna admin menggunakan perintah createadmin.
Lihat juga
move_language¶
- weblate move_language source target¶
Mengizinkan Anda menggabungkan konten bahasa. Ini berguna saat memperbarui ke versi baru yang berisi alias untuk bahasa yang sebelumnya tidak dikenal yang telah dibuat dengan akhiran (generated). Ini akan memindahkan semua konten dari bahasa source ke bahasa target.
Contoh:
weblate move_language cze cs
Setelah memindahkan konten, Anda harus memeriksa apakah masih ada yang tersisa (ini tergantung pada kondisi perlombaan saat seseorang memperbarui repositori sementara waktu) dan menghapus bahasa (generated).
pushgit¶
- weblate pushgit <project|project/component>¶
Mendorong perubahan yang dikomit ke repositori VCS hulu.
- --force-commit¶
Force commits any pending changes, prior to pushing.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
Catatan
Weblate mendorong perubahan secara otomatis jika Dorong dalam komit di Konfigurasi komponen diaktifkan, yang merupakan bawaan.
unlock_translation¶
- weblate unlock_translation <project|project/component>¶
Membuka komponen tertentu, membuatnya tersedia untuk terjemahan.
Petunjuk
Berguna jika Anda ingin melakukan pemeliharaan pada repositori yang mendasarinya.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
Lihat juga
setupgroups¶
- weblate setupgroups¶
Mengkonfigurasikan grup bawaan dan secara opsional menugaskan semua pengguna ke grup bawaan tersebut.
- --no-privs-update¶
Turns off automatic updating of existing groups (only adds new ones).
- --no-projects-update¶
Prevents automatic updates of groups for existing projects. This allows adding newly added groups to existing projects, see Kontrol akses proyek.
Lihat juga
setuplang¶
- weblate setuplang¶
Memperbarui daftar bahasa yang ditentukan di Weblate.
- --no-update¶
Turns off automatic updates of existing languages (only adds new ones).
updatechecks¶
- weblate updatechecks <project|project/component>¶
Memperbarui semua pemeriksaan untuk semua string.
Petunjuk
Berguna untuk peningkatan yang melakukan perubahan besar pada pemeriksaan.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
Catatan
Pemeriksaan dihitung ulang secara berkala oleh Weblate di latar belakang, frekuensinya dapat dikonfigurasikan melalui BACKGROUND_TASKS.
updategit¶
- weblate updategit <project|project/component>¶
Mengambil repositori VCS jarak jauh dan memperbarui simpanan internal.
Anda dapat mendefinisikan proyek atau komponen mana yang akan diperbarui (misalnya weblate/application), atau menggunakan --all untuk memperbarui semua komponen yang ada.
Catatan
Biasanya lebih baik mengkonfigurasikan kait dalam repositori untuk memicu Pengait notifikasi, daripada memicu pembaruan secara teratur oleh updategit.