https://en.altlinux.org/api.php?action=feedcontributions&user=AlexeyRusakov&feedformat=atomALT Linux Wiki - User contributions [en]2024-03-29T06:16:52ZUser contributionsMediaWiki 1.38.2https://en.altlinux.org/index.php?title=HowToJoin&diff=375HowToJoin2009-12-28T21:18:44Z<p>AlexeyRusakov: Initial version</p>
<hr />
<div>If you think that some package is missing in Sisyphus, or that some package deserves more attention; in short, if you want to give some love and effort to some package, it's time to join ALT Linux Team. What you have to do is:<br />
<br />
== Gather information ==<br />
To join the team, you have to have the following pieces of information:<br />
* The mentor name. A mentor is an active Team member that wishes to help newcomers to apply for membership. You can find a mentor in a mailing list or at our [[IRC]] channel.<br />
* A nickname/username; you choose it yourself. Check that your username starts with a letter, contains only letters and digits, is not shorter than 3 characters, and, of course, does not coincide with another member's name (you can see the full list of Team members at [[sisyphus.org]]).<br />
* E-mail address where all your mail will be sent if it's sent to <tt>username@altlinux.org</tt>.<br />
* SSH key (RSA 2048bit or DSA 1024bit); you only have to send a public part to the [[application manager]]. You will use this key to access Sisyphus services ([[git.alt]] and others).<br />
* GPG key (DSA and ElGamal 1024bit); again, you have to provide a public part of the key, and save the private part with you. You will use this key to sign your packages and e-mail letters. It is a good idea to setup your e-mail client so that all mail originating from <tt>username@altlinux.org</tt> is signed, but this is not necessary. You shall send some letters signed when you need to identify yourself (e.g. when restoring an SSH key, or helping a colleague of yours to join the Team).<br />
<br />
If you don't have an SSH and/or a GPG key, and never had them, please read some resources about working with your keys. For those in a real haste: treat these keys as your banking card data, they are no less sensitive. Store in a safe place, do not disclose passphrases, etc. (TODO: translate the article about [[Working with your security tokens]])<br />
<br />
== Create a request ==<br />
A join request is a "bug" in [[BugTracking/BugzillaMiniHowto|Bugzilla]]. These "bugs" are intended for a special person, [[Team/Join/Secretary|the Team secretary]].<br />
<br />
The bug should:<br />
* be created on "Development"/"Team accounts" product, "join" component;<br />
* mention your username, forward address, and several words (a paragraph, no more) about your intentions concerned with Sisyphus&nbsp;&mdash; all this in the body (description) of the bug;<br />
* have the mentors e-mail in the Cc: line;<br />
* have public parts of your SSH and GPG keys as (separate!) attachments, with 'autodetect' type; your GPG public part should be exported for that (e.g., with <tt>gpg --export --armor &lt;id&rt;</tt> command).<br />
<br />
== Wait for a request to be processed ==<br />
After all necessary information is obtained, [[Team/Join/Secretary|the secretary]] checks your keys for correctness, creates an <tt>username@altlinux.org</tt> alias and grants you restricted access to [[git.alt]]. You are not allowed to build packages to any repository yet, but you can work with your git repositories now.<br />
<br />
Please take into account that both the secretary and your mentor are volunteers and they not always have time to respond to you. Thank you for being patient during this time.<br />
<br />
== Learn to build packages for ALT Linux ==<br />
* After you're allowed to login to git.alt, your mentor helps you to learn building packages for ALT Linux. He/she gives you tasks, and gives necessary information to solve them<br />
* When the mentor is sure that you wield all necessary tools in a proper way, he/she notifies the secretary.<br />
* The secretary adds your GPG key to the alt-gpgkeys keychain and subscribes you to the {{lists|devel}} mailing list.<br />
* Since this moment your mentor can send your packages (those that you made and signed) to the repository.<br />
* When the mentor is sure that you can collaborate on the package with other Team members (particularly, with him/herself), he/she notifies the secretary the second time.<br />
<br />
Your mentor may or may have not enough time to answer questions quickly (e.g., because of the difference between your timezones). We recommend you to login to [[IRC]] channel #altlinux-devel and ask questions there; you may get an answer much quicker this way. Be prepared, however, that someone on the channel may criticize your git commits or point to other errors, sometimes in a harsh way. This is a window to the real world of ALT Linux developers team, and real people differ in their ways of expressing their opinions; still they are willing to help you.<br />
<br />
== Become the full member of ALT Linux Team ==<br />
After the mentor notifies the secretary the second time, the secretary grants you the full Team member access. From now on, you can do all operations with your packages without a mentor. Happy hacking!<br />
<br />
[[Category:Sisyphus]]<br />
[[Category:HowTo]]<br />
[[Category:Team]]<br />
[[Category:Devel]]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5.0_Ark&diff=294ALT Linux 5.0 Ark2009-10-29T13:01:04Z<p>AlexeyRusakov: /* Software versions */ Updated for 5.0 release</p>
<hr />
<div>== ALT Linux Ark ==<br />
<br />
ALT Linux presents '''ALT Linux Ark''', a suite of distributions that is designed for making integrated solutions.<br />
<br />
The suite contains 2 distributions for two hardware platforms (i586 and x86_64):<br />
<br />
''' ALT Linux 5.0 Ark Server. Features include: '''<br />
* Enterprise network setup.<br />
* Host-based authorization of users and services.<br />
* Easy connection of remote offices via VPN.<br />
* Host-based updates for servers and workstations.<br />
* Network operating system installation to workstations.<br />
* Virtualization for 3rd party software containers.<br />
* Backup and restore functionality (you can recover a single file or the filesystem from the same backup).<br />
* A unified file storage with quota support.<br />
* Automatic RAID1 creation if 2+ identical discs are detected.<br />
* An easy and convenient administration interface that doesn't require profound knowledge of server subsystems.<br />
<br />
'''ALT Linux 5.0 Ark Desktop. Features include:'''<br />
* A graphical environment — '''GNOME'''.<br />
* Automatic detection of a connected Ark Server installation; network-wide settings are taken from it.<br />
* Easy interaction with containers that are installed at the Office Server, including out-of-the-box terminal client mode.<br />
* A set of software that lets you start working right away: an office suite, internet applications and more.<br />
* Host-based authentication.<br />
* Integration with the Office Server network file storage.<br />
<br />
=== Main features of Platform Five ===<br />
* Modularity <br />
<br />
Products that comprise and extend Platform Five are distributed as virtual containers for a basic server distribution, ALT Linux 5 Server. Using virtual containers in server solutions provides increased security, convenient support conditions for software vendors, an opportunity to distribute customized solutions, and ease of use. The virtualization technologies instantly available are OpenVZ and KVM.<br />
<br />
* Integration <br />
<br />
Zeroconf technology allows to dramatically reduce time and resources that are needed to deploy an office network using Platform Five products. Most of a usual setup sequence is done automatically. Platform Five is mostly targeted at solution providers (both with free and proprietary licensing). An ISV that distributes its product in the form of a container for Platform Five gains an opportunity to deliver modules with various life cycles (and even on varying codebase) and build an IT infrastructure based on the open platform. ALT Linux company provides many services related to Platform Five: compatibility certification program for products made by ISVs, distribution of products made for Platform Five as well as support and training services for those products, publishing products with a common Platform Five design, and products promotion as well. ALT Linux partners and ALT Linux Team members have preferences when cooperating with ALT Linux.<br />
<br />
=== Documentation ===<br />
<br />
Instructions for making containers: [[Platform5.0|http://en.altlinux.org/Platform5.0]]<br />
<br />
=== Software versions ===<br />
* Linux kernel 2.6.30 (workstations), 2.6.27 (Ark Server)<br />
* GCC 4.4<br />
* GLIBC 2.10.1<br />
* Xorg 1.6.5<br />
* OpenOffice.org 3.1.1.3<br />
* GNOME 2.26.3 (ALT Linux Gnome Desktop)<br />
* GIMP 2.6.7<br />
* Scribus 1.3.5.1<br />
* Inkscape 0.47<br />
<br />
== Distribution versions ==<br />
* '''Beta:''' September, 9, 2009<br />
<br />
== Download ==<br />
<br />
=== FTP ===<br />
<br />
ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/p5/iso/ark/<br />
<br />
{|class="standard"<br />
!Image<br />
!Description<br />
!Size<br />
!MD5<br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Ark Server'''<br />
|-<br />
|<tt>The list is under construction</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Ark Desktop'''<br />
|-<br />
|<tt>The list is under construction</tt><br />
<br />
<!--=== Torrent ===<br />
<br />
* [http://torrent.altlinux.ru/ torrent.altlinux.ru] (Ark 5.0)--><br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="4"><br />
Image:Alterator-ca.png|Certificate Authority module<br />
Image:Alterator-mkve-profiles.png|Creating a KVM container from a profile<br />
Image:Alterator-postfix-dovecot.png|Mail server module<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5.0_Ark&diff=293ALT Linux 5.0 Ark2009-10-29T12:58:03Z<p>AlexeyRusakov: Updated for the 5.0 release</p>
<hr />
<div>== ALT Linux Ark ==<br />
<br />
ALT Linux presents '''ALT Linux Ark''', a suite of distributions that is designed for making integrated solutions.<br />
<br />
The suite contains 2 distributions for two hardware platforms (i586 and x86_64):<br />
<br />
''' ALT Linux 5.0 Ark Server. Features include: '''<br />
* Enterprise network setup.<br />
* Host-based authorization of users and services.<br />
* Easy connection of remote offices via VPN.<br />
* Host-based updates for servers and workstations.<br />
* Network operating system installation to workstations.<br />
* Virtualization for 3rd party software containers.<br />
* Backup and restore functionality (you can recover a single file or the filesystem from the same backup).<br />
* A unified file storage with quota support.<br />
* Automatic RAID1 creation if 2+ identical discs are detected.<br />
* An easy and convenient administration interface that doesn't require profound knowledge of server subsystems.<br />
<br />
'''ALT Linux 5.0 Ark Desktop. Features include:'''<br />
* A graphical environment — '''GNOME'''.<br />
* Automatic detection of a connected Ark Server installation; network-wide settings are taken from it.<br />
* Easy interaction with containers that are installed at the Office Server, including out-of-the-box terminal client mode.<br />
* A set of software that lets you start working right away: an office suite, internet applications and more.<br />
* Host-based authentication.<br />
* Integration with the Office Server network file storage.<br />
<br />
=== Main features of Platform Five ===<br />
* Modularity <br />
<br />
Products that comprise and extend Platform Five are distributed as virtual containers for a basic server distribution, ALT Linux 5 Server. Using virtual containers in server solutions provides increased security, convenient support conditions for software vendors, an opportunity to distribute customized solutions, and ease of use. The virtualization technologies instantly available are OpenVZ and KVM.<br />
<br />
* Integration <br />
<br />
Zeroconf technology allows to dramatically reduce time and resources that are needed to deploy an office network using Platform Five products. Most of a usual setup sequence is done automatically. Platform Five is mostly targeted at solution providers (both with free and proprietary licensing). An ISV that distributes its product in the form of a container for Platform Five gains an opportunity to deliver modules with various life cycles (and even on varying codebase) and build an IT infrastructure based on the open platform. ALT Linux company provides many services related to Platform Five: compatibility certification program for products made by ISVs, distribution of products made for Platform Five as well as support and training services for those products, publishing products with a common Platform Five design, and products promotion as well. ALT Linux partners and ALT Linux Team members have preferences when cooperating with ALT Linux.<br />
<br />
=== Documentation ===<br />
<br />
Instructions for making containers: [[Platform5.0|http://en.altlinux.org/Platform5.0]]<br />
<br />
=== Software versions ===<br />
* Linux kernel 2.6.30 (workstations), 2.6.27 (Office Server)<br />
* GCC 4.4<br />
* GLIBC 2.10.1<br />
* Xorg 1.6.3<br />
* OpenOffice.org 3.1.1.1<br />
* KDE 4.3.1 (ALT Linux Desktop)<br />
* GNOME 2.26.3 (ALT Linux Gnome Desktop)<br />
* GIMP 2.6.7<br />
* Scribus 1.3.5.1<br />
* Inkscape 0.47<br />
<br />
== Distribution versions ==<br />
* '''Beta:''' September, 9, 2009<br />
<br />
== Download ==<br />
<br />
=== FTP ===<br />
<br />
ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/p5/iso/ark/<br />
<br />
{|class="standard"<br />
!Image<br />
!Description<br />
!Size<br />
!MD5<br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Ark Server'''<br />
|-<br />
|<tt>The list is under construction</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Ark Desktop'''<br />
|-<br />
|<tt>The list is under construction</tt><br />
<br />
<!--=== Torrent ===<br />
<br />
* [http://torrent.altlinux.ru/ torrent.altlinux.ru] (Ark 5.0)--><br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="4"><br />
Image:Alterator-ca.png|Certificate Authority module<br />
Image:Alterator-mkve-profiles.png|Creating a KVM container from a profile<br />
Image:Alterator-postfix-dovecot.png|Mail server module<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:Alterator-postfix-dovecot.png&diff=286File:Alterator-postfix-dovecot.png2009-09-10T21:08:13Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:Alterator-mkve-profiles.png&diff=285File:Alterator-mkve-profiles.png2009-09-10T21:08:02Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:Alterator-ca.png&diff=284File:Alterator-ca.png2009-09-10T21:07:42Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5.0_Ark&diff=283ALT Linux 5.0 Ark2009-09-10T21:05:35Z<p>AlexeyRusakov: Initial version</p>
<hr />
<div>== ALT Linux Ark ==<br />
<br />
'''Attention!'''<br />
Current state: beta<br />
The final release may contain significant changes.<br />
<br />
ALT Linux presents a '''beta-version''' of the Platform Five flagship product. '''ALT Linux Ark''' is designed for making integrated solutions.<br />
<br />
This '''beta-version''' includes 3 distributions for two hardware platforms (i586 and x86_64):<br />
<br />
''' ALT Linux 5.0 Office Server. Features include: '''<br />
* Enterprise network setup.<br />
* Host-based authorization of users and services.<br />
* Easy connection of remote offices via VPN.<br />
* Host-based updates for servers and workstations.<br />
* Network operating system installation to workstations.<br />
* Virtualization for 3rd party software containers.<br />
* Backup and restore functionality (you can recover a single file or the filesystem from the same backup).<br />
* A unified file storage with quota support.<br />
* Automatic RAID1 creation if 2+ identical discs are detected.<br />
* An easy and convenient administration interface that doesn't require profound knowledge of server subsystems.<br />
<br />
'''ALT Linux 5.0 Desktop and ALT Linux 5.0 Gnome Desktop. Features include:'''<br />
* A graphical environment at your choice — either '''KDE4''' or '''GNOME'''.<br />
* Automatic detection of a connected Office Server installation; network-wide settings are taken from it.<br />
* Easy interaction with containers that are installed at the Office Server, including out-of-the-box terminal client mode.<br />
* A set of software that lets you start working right away: an office suite, internet applications and more.<br />
* Host-based authentication.<br />
* Integration with the Office Server network file storage.<br />
<br />
=== Main features of Platform Five ===<br />
* Modularity <br />
<br />
Products that comprise and extend Platform Five are distributed as virtual containers for a basic server distribution, ALT Linux 5 Server. Using virtual containers in server solutions provides increased security, convenient support conditions for software vendors, an opportunity to distribute customized solutions, and ease of use. The virtualization technologies instantly available are OpenVZ and KVM.<br />
<br />
* Integration <br />
<br />
Zeroconf technology allows to dramatically reduce time and resources that are needed to deploy an office network using Platform Five products. Most of a usual setup sequence is done automatically. Platform Five is mostly targeted at solution providers (both with free and proprietary licensing). An ISV that distributes its product in the form of a container for Platform Five gains an opportunity to deliver modules with various life cycles (and even on varying codebase) and build an IT infrastructure based on the open platform. ALT Linux company provides many services related to Platform Five: compatibility certification program for products made by ISVs, distribution of products made for Platform Five as well as support and training services for those products, publishing products with a common Platform Five design, and products promotion as well. ALT Linux partners and ALT Linux Team members have preferences when cooperating with ALT Linux.<br />
<br />
=== Documentation ===<br />
<br />
Instructions for making containers: [[Platform5.0|http://en.altlinux.org/Platform5.0]]<br />
<br />
=== Software versions ===<br />
* Linux kernel 2.6.30 (workstations), 2.6.27 (Office Server)<br />
* GCC 4.4<br />
* GLIBC 2.10.1<br />
* Xorg 1.6.3<br />
* OpenOffice.org 3.1.1.1<br />
* KDE 4.3.1 (ALT Linux Desktop)<br />
* GNOME 2.26.3 (ALT Linux Gnome Desktop)<br />
* GIMP 2.6.7<br />
* Scribus 1.3.5.1<br />
* Inkscape 0.47<br />
<br />
== Distribution versions ==<br />
* '''Beta:''' September, 9, 2009<br />
<br />
== Download ==<br />
<br />
=== FTP ===<br />
<br />
ftp://beta.altlinux.ru/ark/20090909/<br />
<br />
{|class="standard"<br />
!Image<br />
!Description<br />
!Size<br />
!MD5<br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Office Server'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090909-office-server-i586-ru-install-cd.iso altlinux-5.0.0_beta-20090909-office-server-i586-ru-install-cd.iso]</tt><br />
|Install CD (i586), [ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090909-office-server-i586-ru-install-cd.iso.txt files list]<br />
|align="right"|<tt>587 Mb</tt><br />
|<tt>4cc2fc377ef1049fe3bb44336825db0c</tt><br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090909-office-server-x86_64-ru-install-cd.iso altlinux-5.0.0_beta-20090909-office-server-x86_64-ru-install-cd.iso]</tt><br />
|Install CD (x86_64), [ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090909-office-server-x86_64-ru-install-cd.iso.txt files list]<br />
|align="right"|<tt>605 Mb</tt><br />
|<tt>8f66cf1e5ef11ff8b35d0c7e6e3360d8</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Desktop'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-desktop-i586-ru-install-dvd5.iso altlinux-5.0.0_beta-20090908-desktop-i586-ru-install-dvd5.iso]</tt><br />
|Install DVD (i586), [ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-desktop-i586-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>2,9 Gb</tt><br />
|<tt>03d7bbb993824b92497fa90a7bf6aa63</tt><br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-desktop-x86_64-ru-install-dvd5.iso altlinux-5.0.0_beta-20090908-desktop-x86_64-ru-install-dvd5.iso]</tt><br />
|Install DVD (x86_64), [ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-desktop-x86_64-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>3,0 Gb</tt><br />
|<tt>6f52189f32ddc6f4e700a9621d459947</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Gnome Desktop'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-gnome-desktop-i586-ru-install-dvd5.iso altlinux-5.0.0_beta-20090908-gnome-desktop-i586-ru-install-dvd5.iso]</tt><br />
|Install DVD (i586), [ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-gnome-desktop-i586-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>1,8 Gb</tt><br />
|<tt>c96c73c447c700a0b850e105545d904c</tt><br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-gnome-desktop-x86_64-ru-install-dvd5.iso altlinux-5.0.0_beta-20090908-gnome-desktop-x86_64-ru-install-dvd5.iso]</tt><br />
|Install DVD (x86_64), [ftp://beta.altlinux.ru/ark/20090909/altlinux-5.0.0_beta-20090908-gnome-desktop-x86_64-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>1,9 Gb</tt><br />
|<tt>0ecd56d9c2a842469db6cd8683384f88</tt><br />
|}<br />
<br />
<!--=== Torrent ===<br />
<br />
* [http://torrent.altlinux.ru/ torrent.altlinux.ru] (Ark 5.0 (beta))--><br />
<br />
== Known bugs ==<br />
=== Desktop/GNOME Desktop ===<br />
# GNOME Desktop has no rescue mode<br />
# No user documentation (neither in Russian :)<br />
# Installation source choice in the bootloader is not functional<br />
# Kernel installation to a GPT partition is not supported<br />
# No help for some modules of the System Management Center<br />
# Some parts of interface and documentation are not localized<br />
# Files with locale-specific characters in a Zip-archive are displayed improperly<br />
# The background is not scaled properly in Live CD<br />
# Thunderbird doesn't let to open hyperlinks in letters<br />
# By default, Windows applications are not started in WINE if they reside on mountable locations (/media)<br />
<br />
=== Office Server ===<br />
# Installation source choice in the bootloader is not functional<br />
# Kernel installation to a GPT partition is not supported<br />
# There's no message about management options at the end of installation<br />
# No help for some modules of the System Management Center<br />
# A virtual container can't be unloaded<br />
<br />
The full list of known bugs (mostly in Russian, sorry) is available at: [https://bugzilla.altlinux.org/show_bug.cgi?id=19564]. <br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="4"><br />
Image:Alterator-ca.png|Certificate Authority module<br />
Image:Alterator-mkve-profiles.png|Creating a KVM container from a profile<br />
Image:Alterator-postfix-dovecot.png|Mail server module<br />
</gallery><br />
<br />
[[Category:Testing]]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5_School&diff=282ALT Linux 5 School2009-08-27T18:19:01Z<p>AlexeyRusakov: /* Screenshots */ Added a notice about Russian on screenshots</p>
<hr />
<div>== ALT Linux School 2009 (aka ALT Linux 5 School) ==<br />
<br />
A set of ALT Linux distributions targetted at educational institutions:<br />
* '''ALT Linux 5.0.0 School Lite'''<br />
* '''ALT Linux 5.0.0 School Junior'''<br />
* '''ALT Linux 5.0.0 School Master'''<br />
<br />
'''Caution!'''<br />
The current state is beta. The final release may contain siginificant changes from the current one.<br />
<br />
=== Software overview ===<br />
<br />
* Linux kernel 2.6.30<br />
* OpenOffice.org 3.1.0.6<br />
* XFCE 4.6.1 (ALT Linux 5.0.0 Lite)<br />
* GNOME 2.26 (ALT Linux 5.0.0 Junior)<br />
* KDE 4.3.0 (ALT Linux 5.0.0 Master)<br />
* GIMP 2.6.7<br />
* Scribus 1.3.5.1<br />
* Inkscape 0.47<br />
<br />
== Published versions ==<br />
<br />
* '''Beta:''' August, 27th, 2009<br />
<br />
== What's new (compared to the Free Software Suite-2008)==<br />
<br />
* Up-to-date versions of most software included<br />
* Use GNOME desktop environment in ALT Linux Junior, KDE4 in ALT Linux Master<br />
* New lookout<br />
* Live CD allows you to install a system to your hard disc<br />
* ALT Linux Junior and ALT Linux Master contain additional software:<br />
** Dia<br />
** iTalc<br />
** iTest<br />
** KuMir IDE<br />
** Avidemux<br />
** Code::Blocks<br />
** Geany<br />
** FreeNX<br />
** recordmydesktop (qt/gtk, depending on the DE)<br />
** VirtualBox<br />
** YAGF (CuneiForm-powered OCR system with graphical interface)<br />
* In addition, ALT Linux Junior includes Anjuta 2, an IDE for GNOME<br />
<br />
== Download ==<br />
<br />
Only -ru- images are available at the moment. You can switch to the English interface (and go on with installation or running a LiveCD in English) by pressing F2 at the boot screen. Sorry for inconvenience.<br />
<br />
{|class="standard"<br />
!Image<br />
!Description<br />
!Size<br />
!MD5<br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Lite'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-install-cd.iso school-5.0.0_beta-20090826-school-lite-i586-ru-install-cd.iso]</tt><br />
|Install CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-install-cd.iso.txt files list]<br />
|align="right"|<tt>654 Mb</tt><br />
|<tt>2e096dbad9d2a15b9b55ec480fbf99e4</tt><br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-addon-cd.iso school-5.0.0_beta-20090826-school-lite-i586-ru-addon-cd.iso]</tt><br />
|Additional CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-addon-cd.iso.txt files list]<br />
|align="right"|<tt>228 Mb</tt><br />
|<tt>a8a3b42934eef7b0e3cc7482f804f729</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Junior'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-junior-i586-ru-install-dvd5.iso school-5.0.0_beta-20090826-junior-i586-ru-install-dvd5.iso]</tt><br />
|Install DVD/Live CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-junior-i586-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>2,8 Gb</tt><br />
|<tt>bd9d2a918f9d6be60bda1b0990dd60a0</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Master'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-master-i586-ru-install-dvd5.iso school-5.0.0_beta-20090826-master-i586-ru-install-dvd5.iso]</tt><br />
|Install DVD/Live CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-master-i586-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>3,4 Gb</tt><br />
|<tt>7d86d16be585e330c7805ae4a18e4c77</tt><br />
|}<br />
<br />
== Software changes (compared to the Free Software Suite-2008) ==<br />
# There's no '''Scilab''' in ALT Linux Lite.<br />
# '''ClamAV''' antivirus is not included into ALT Linux Master. It is still available as part of ALT Linux Lite and ALT Linux Junior.<br />
# SKF plugin for Squid is not available in this beta (if you don't know what it is, you don't need it).<br />
# ALT Linux Junior uses GNOME as the primary environment, with '''File-Roller''' as the primary archiver.<br />
# Instead of Quanta, '''Bluefish''' is added to ALT Linux Junior, '''Kate''' to ALT Linux Master.<br />
# There's '''Code::Blocks''' instead of KDevelop in ALT Linux Junior and ALT Linux Master.<br />
# Instead of KPDF, there's '''Evince''' in ALT Linux Junior, '''oKular''' in ALT Linux Master.<br />
<br />
== Known bugs ==<br />
<br />
# No rescue mode yet<br />
# No documentation<br />
# Unfinished localization for any language except English<br />
# No help for some parts of ALT Linux System Management Center<br />
# Thunderbird doesn't open hyperlinks in e-mails<br />
# No/wrong icons for some steps of installer<br />
# Arrow and Fn keys on additional keyboard don't work in mc when using KDE.<br />
# When switching to a tty, the keyboard layout switcher is being reset to Ctrl-Shift<br />
# Konqueror doesn't show history properly<br />
# Audacity doesn't read mp3 files out of the box<br />
# The installation source menus does not operate<br />
# Problems with non UTF-8 charsets in Zip-archives (including those created in other OSes)<br />
# On some laptops, keyboard fails to work after Suspend to RAM<br />
# No examples and empty Welcome page in Eclipse<br />
# No way to install to hard disc in "LiveCD with sessions" mode<br />
# The background doesn't scale when installing from a LiveCD<br />
# memtest doesn't work from the boot screen<br />
# In XFCE, there's no 'System Management Center' launcher in the menu<br />
<br />
== Screenshots ==<br />
<br />
The screenshots are taken from the Russian wiki page; English localization of the interface is available, too.<br />
<br />
<gallery perrow="4"><br />
Image:School-Lite-beta.png|ALT Linux Lite<br />
Image:School-Junior-beta.png|ALT Linux Junior<br />
Image:School-Master-beta.png|ALT Linux Master<br />
Image:Italc.png|iTALC on ALT Linux Master<br />
</gallery><br />
<br />
== Discussion ==<br />
<br />
You can discuss ALT Linux School 2009 in the [https://lists.altlinux.org/mailman/listinfo/community-en English-speaking ALT Linux community list].</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:Italc.png&diff=281File:Italc.png2009-08-27T18:16:26Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:School-Master-beta.png&diff=280File:School-Master-beta.png2009-08-27T18:16:01Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:School-Junior-beta.png&diff=279File:School-Junior-beta.png2009-08-27T18:13:13Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=File:School-Lite-beta.png&diff=278File:School-Lite-beta.png2009-08-27T18:12:23Z<p>AlexeyRusakov: </p>
<hr />
<div></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5_School&diff=277ALT Linux 5 School2009-08-27T18:11:50Z<p>AlexeyRusakov: Initial version</p>
<hr />
<div>== ALT Linux School 2009 (aka ALT Linux 5 School) ==<br />
<br />
A set of ALT Linux distributions targetted at educational institutions:<br />
* '''ALT Linux 5.0.0 School Lite'''<br />
* '''ALT Linux 5.0.0 School Junior'''<br />
* '''ALT Linux 5.0.0 School Master'''<br />
<br />
'''Caution!'''<br />
The current state is beta. The final release may contain siginificant changes from the current one.<br />
<br />
=== Software overview ===<br />
<br />
* Linux kernel 2.6.30<br />
* OpenOffice.org 3.1.0.6<br />
* XFCE 4.6.1 (ALT Linux 5.0.0 Lite)<br />
* GNOME 2.26 (ALT Linux 5.0.0 Junior)<br />
* KDE 4.3.0 (ALT Linux 5.0.0 Master)<br />
* GIMP 2.6.7<br />
* Scribus 1.3.5.1<br />
* Inkscape 0.47<br />
<br />
== Published versions ==<br />
<br />
* '''Beta:''' August, 27th, 2009<br />
<br />
== What's new (compared to the Free Software Suite-2008)==<br />
<br />
* Up-to-date versions of most software included<br />
* Use GNOME desktop environment in ALT Linux Junior, KDE4 in ALT Linux Master<br />
* New lookout<br />
* Live CD allows you to install a system to your hard disc<br />
* ALT Linux Junior and ALT Linux Master contain additional software:<br />
** Dia<br />
** iTalc<br />
** iTest<br />
** KuMir IDE<br />
** Avidemux<br />
** Code::Blocks<br />
** Geany<br />
** FreeNX<br />
** recordmydesktop (qt/gtk, depending on the DE)<br />
** VirtualBox<br />
** YAGF (CuneiForm-powered OCR system with graphical interface)<br />
* In addition, ALT Linux Junior includes Anjuta 2, an IDE for GNOME<br />
<br />
== Download ==<br />
<br />
Only -ru- images are available at the moment. You can switch to the English interface (and go on with installation or running a LiveCD in English) by pressing F2 at the boot screen. Sorry for inconvenience.<br />
<br />
{|class="standard"<br />
!Image<br />
!Description<br />
!Size<br />
!MD5<br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Lite'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-install-cd.iso school-5.0.0_beta-20090826-school-lite-i586-ru-install-cd.iso]</tt><br />
|Install CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-install-cd.iso.txt files list]<br />
|align="right"|<tt>654 Mb</tt><br />
|<tt>2e096dbad9d2a15b9b55ec480fbf99e4</tt><br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-addon-cd.iso school-5.0.0_beta-20090826-school-lite-i586-ru-addon-cd.iso]</tt><br />
|Additional CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-school-lite-i586-ru-addon-cd.iso.txt files list]<br />
|align="right"|<tt>228 Mb</tt><br />
|<tt>a8a3b42934eef7b0e3cc7482f804f729</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Junior'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-junior-i586-ru-install-dvd5.iso school-5.0.0_beta-20090826-junior-i586-ru-install-dvd5.iso]</tt><br />
|Install DVD/Live CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-junior-i586-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>2,8 Gb</tt><br />
|<tt>bd9d2a918f9d6be60bda1b0990dd60a0</tt><br />
|-<br />
|colspan="4" align="left"| '''ALT Linux Master'''<br />
|-<br />
|<tt>[ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-master-i586-ru-install-dvd5.iso school-5.0.0_beta-20090826-master-i586-ru-install-dvd5.iso]</tt><br />
|Install DVD/Live CD (i586), [ftp://beta.altlinux.ru/school/2009/school-5.0.0_beta-20090826-master-i586-ru-install-dvd5.iso.txt files list]<br />
|align="right"|<tt>3,4 Gb</tt><br />
|<tt>7d86d16be585e330c7805ae4a18e4c77</tt><br />
|}<br />
<br />
== Software changes (compared to the Free Software Suite-2008) ==<br />
# There's no '''Scilab''' in ALT Linux Lite.<br />
# '''ClamAV''' antivirus is not included into ALT Linux Master. It is still available as part of ALT Linux Lite and ALT Linux Junior.<br />
# SKF plugin for Squid is not available in this beta (if you don't know what it is, you don't need it).<br />
# ALT Linux Junior uses GNOME as the primary environment, with '''File-Roller''' as the primary archiver.<br />
# Instead of Quanta, '''Bluefish''' is added to ALT Linux Junior, '''Kate''' to ALT Linux Master.<br />
# There's '''Code::Blocks''' instead of KDevelop in ALT Linux Junior and ALT Linux Master.<br />
# Instead of KPDF, there's '''Evince''' in ALT Linux Junior, '''oKular''' in ALT Linux Master.<br />
<br />
== Known bugs ==<br />
<br />
# No rescue mode yet<br />
# No documentation<br />
# Unfinished localization for any language except English<br />
# No help for some parts of ALT Linux System Management Center<br />
# Thunderbird doesn't open hyperlinks in e-mails<br />
# No/wrong icons for some steps of installer<br />
# Arrow and Fn keys on additional keyboard don't work in mc when using KDE.<br />
# When switching to a tty, the keyboard layout switcher is being reset to Ctrl-Shift<br />
# Konqueror doesn't show history properly<br />
# Audacity doesn't read mp3 files out of the box<br />
# The installation source menus does not operate<br />
# Problems with non UTF-8 charsets in Zip-archives (including those created in other OSes)<br />
# On some laptops, keyboard fails to work after Suspend to RAM<br />
# No examples and empty Welcome page in Eclipse<br />
# No way to install to hard disc in "LiveCD with sessions" mode<br />
# The background doesn't scale when installing from a LiveCD<br />
# memtest doesn't work from the boot screen<br />
# In XFCE, there's no 'System Management Center' launcher in the menu<br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="4"><br />
Image:School-Lite-beta.png|ALT Linux Lite<br />
Image:School-Junior-beta.png|ALT Linux Junior<br />
Image:School-Master-beta.png|ALT Linux Master<br />
Image:Italc.png|iTALC on ALT Linux Master<br />
</gallery><br />
<br />
== Discussion ==<br />
<br />
You can discuss ALT Linux School 2009 in the [https://lists.altlinux.org/mailman/listinfo/community-en English-speaking ALT Linux community list].</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5.0_TP&diff=271ALT Linux 5.0 TP2009-06-21T18:22:10Z<p>AlexeyRusakov: /* Platform Five Technology Preview */ Renamed {name} 5.0 to ALT Linux 5.0 {name}</p>
<hr />
<div>== Platform Five Technology Preview ==<br />
ALT Linux presents a '''Technology Preview''' of '''Platform Five'''. '''Platform Five''' is a new step in the evolution of Free Software development and business, that allows for creation of integrated solutions and involvement of both free and proprietary software vendors into development, deployment, support and training concerned with these solutions.<br />
<br />
The '''Technology Preview''' includes the following 3 distributions available for 2 platforms (i586 and x86_64):<br />
<br />
'''ALT Linux 5.0 Server'''. The functionality of the distribution includes:<br />
* Enterprise network setting up.<br />
* Host-based authorization of users and services.<br />
* Joining of remote office networks (VPN).<br />
* Server-based and server-governed updates for desktop (client) systems.<br />
* Network installation of a compatible operating system to desktops.<br />
* Virtualization infrastructure with ability to run containers with additional software of different types.<br />
* Backup and restore functions (restoring of specific files from a specific backup copy is also available).<br />
* A unified file storage with quota support.<br />
* Automatic creation of RAID1 array out of several identical discs.<br />
* A convenient and easy to use system management interface that does not require advanced operator skills.<br />
<br />
'''ALT Linux 5.0 Desktop''' and '''ALT Linux 5.0 GNOME Desktop'''. The functionality includes:<br />
* Choose your GUI - KDE4 or GNOME.<br />
* Automated setup in the presence of a ALT Linux 5 Server system in a local network.<br />
* Both distros are ready to work as terminal clients, with a terminal server as a container inside a ALT Linux 5 Server system.<br />
* All software that is necessary in an office: office suite, internet applications, PIM etc.<br />
* Host-based authentication, using ALT Linux 5 Server or other compatible authorization services.<br />
* Automatic shared folders discovery and mounting.<br />
* Easy, convenient, effective.<br />
<br />
=== Main features of Platform Five ===<br />
* Modularity<br />
Products that comprise and extend Platform Five are distributed as virtual containers for a basic server distribution, ALT Linux 5 Server. Using virtual containers in server solutions provides increased security, convenient support conditions for software vendors, an opportunity to distribute customized solutions, and ease of use.<br />
The virtualization technologies involved are OpenVZ and KVM.<br />
* Integration<br />
Zeroconf technology allows to dramatically reduce time and resources that are needed to unfold an office network using Platform Five products. Most of a usual setup sequence is done automatically.<br />
The Platform Five Technology Preview is mostly targeted at solution providers (both with free and proprietary licensing). A release of a product as a container for Platform Five gives ISV an opportunity to deliver modules with various life cycles (and even on varying codebase) and build an IT infrastructure based on the open platform. ALT Linux company provides many services related to Platform Five: compatibility certification program for products made by ISVs, distribution of products made for Platform Five as well as support and training services for those products, publishing products with a common Platform Five design, and products promotion as well. ALT Linux partners and ALT Linux Team members have preferences when cooperating with ALT Linux.<br />
<br />
=== Download ===<br />
Platform Five distribution previews are available for download at the following links:<br />
==== ALT Linux 5.0 Server ====<br />
<br />
* i586: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090617-office-server-i586-ru-install-cd.iso (543 Mb) <br />
<br />
MD5: 9c05a496cf6d9c2935bc33860120af8a<br />
<br />
* x86_64: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090617-office-server-x86_64-ru-install-cd.iso (560 Mb) <br />
<br />
MD5: 410dabdf129c334f730bccffd0f95462<br />
==== ALT Linux 5.0 Desktop ====<br />
<br />
* i586: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-desktop-i586-ru-install-dvd5.iso (2,9 Gb) <br />
<br />
MD5: f7cdbe0bfc147a1a6f426d848db74ce1<br />
<br />
* x86_64: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-desktop-x86_64-ru-install-dvd5.iso (2,9 Gb) <br />
<br />
MD5: 4e00ac5fedab3a39d0f712cf8ba31817<br />
<br />
==== ALT Linux 5.0 Gnome Desktop ====<br />
<br />
* i586: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-gnome-desktop-i586-ru-install-dvd5.iso (1,7 Gb) <br />
<br />
MD5: 6870e2d106dabd346c48aa2a5c531f63<br />
<br />
* x86_64: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-gnome-desktop-x86_64-ru-install-dvd5.iso (1,8 Gb) <br />
<br />
MD5: 6efc27f90822735aed8e469c172d6cd5<br />
<br />
==== Containers ====<br />
<br />
* KVM: ftp://beta.altlinux.org/ark/TP/kvm-desktop-5.0.bun (3,3 Gb) — a desktop container that is available via any NX client. Credentials: username 'user', password '123' <br />
<br />
MD5: 1a176294804ae4e17cfb91846227a641<br />
<br />
* OpenVZ (i586): ftp://beta.altlinux.org/ark/TP/openvz-mailing-list-i586.bun (228 Mb) — mailing list server (i586) <br />
<br />
MD5: 5064253b1ac5d8e21091a7cb091e7b09<br />
<br />
* OpenVZ (x86_64): ftp://beta.altlinux.org/ark/TP/openvz-mailing-list-x86_64.bun (232 Mb) — mailing list server (i586) <br />
<br />
MD5: b7227c3763363f8df02faebd49ee0c68<br />
<br />
==== Documentation ====<br />
<br />
Instructions on containers development: http://en.altlinux.org/Platform5.0<br />
<br />
=== Known limitations of Technology Preview ===<br />
<br />
* ALT Linux 5.0 Server (web interface)<br />
** Only primary domain controller is supported<br />
** The domain cannot be renamed<br />
** No mail server setup module<br />
** Proxy server does not operate properly<br />
* ALT Linux 5.0 Desktop<br />
** Possible artifacts with Intel video<br />
** Multiple invocations of apt-indicator<br />
** The default Plasma theme is not used<br />
** It is impossible to setup root filesystem on a RAID<br />
* ALT Linux 5.0 Gnome Desktop<br />
** Possible artifacts with Intel video<br />
** Multiple invocations of apt-indicator<br />
** It is impossible to setup root filesystem on a RAID<br />
<br />
=== Attention! ===<br />
<br />
Technology Preview is not a final release product and is not intended to be used by inexperienced users. Upgrade to future versions is not guaranteed. Please do not use the Platform Five previews and prototypes in a production environment.</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Platform5.0&diff=270Platform5.02009-06-19T09:33:24Z<p>AlexeyRusakov: Initial version</p>
<hr />
<div>Additional information on Platform Five<br />
<br />
=== How to create a container? ===<br />
<br />
* [[Creating a KVM profile]]<br />
* [[Creating an OpenVZ profile]]<br />
<br />
[[Category:Platform5]]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_5.0_TP&diff=269ALT Linux 5.0 TP2009-06-19T09:26:51Z<p>AlexeyRusakov: Added known limitations and the warning; fixed formatting</p>
<hr />
<div>== Platform Five Technology Preview ==<br />
ALT Linux presents a '''Technology Preview''' of '''Platform Five'''. '''Platform Five''' is a new step in the evolution of Free Software development and business, that allows for creation of integrated solutions and involvement of both free and proprietary software vendors into development, deployment, support and training concerned with these solutions.<br />
<br />
The '''Technology Preview''' includes the following 3 distributions available for 2 platforms (i586 and x86_64):<br />
<br />
'''Server 5.0'''. The functionality of the distribution includes:<br />
* Enterprise network setting up.<br />
* Host-based authorization of users and services.<br />
* Joining of remote office networks (VPN).<br />
* Server-based and server-governed updates for desktop (client) systems.<br />
* Network installation of a compatible operating system to desktops.<br />
* Virtualization infrastructure with ability to run containers with additional software of different types.<br />
* Backup and restore functions (restoring of specific files from a specific backup copy is also available).<br />
* A unified file storage with quota support.<br />
* Automatic creation of RAID1 array out of several identical discs.<br />
* A convenient and easy to use system management interface that does not require advanced operator skills.<br />
<br />
'''Desktop 5.0''' and '''GNOME Desktop 5.0'''. The functionality includes:<br />
* Choose your GUI - KDE4 or GNOME.<br />
* Automated setup in the presence of a Server 5.0 system in a local network.<br />
* Both distros are ready to work as terminal clients, with a terminal server as a container inside a Server 5.0 system.<br />
* All software that is necessary in an office: office suite, internet applications, PIM etc.<br />
* Host-based authentication, using Server 5.0 or other compatible authorization services.<br />
* Automatic shared folders discovery and mounting.<br />
* Easy, convenient, effective.<br />
<br />
=== Main features of Platform Five ===<br />
* Modularity<br />
Products that comprise and extend Platform Five are distributed as virtual containers for a basic server distribution, ALT Linux Server 5. Using virtual containers in server solutions provides increased security, convenient support conditions for software vendors, an opportunity to distribute customized solutions, and ease of use.<br />
The virtualization technologies involved are OpenVZ and KVM.<br />
* Integration<br />
Zeroconf technology allows to dramatically reduce time and resources that are needed to unfold an office network using Platform Five products. Most of a usual setup sequence is done automatically.<br />
The Platform Five Technology Preview is mostly targeted at solution providers (both with free and proprietary licensing). A release of a product as a container for Platform Five gives ISV an opportunity to deliver modules with various life cycles (and even on varying codebase) and build an IT infrastructure based on the open platform. ALT Linux company provides many services related to Platform Five: compatibility certification program for products made by ISVs, distribution of products made for Platform Five as well as support and training services for those products, publishing products with a common Platform Five design, and products promotion as well. ALT Linux partners and ALT Linux Team members have preferences when cooperating with ALT Linux.<br />
<br />
=== Download ===<br />
Platform Five distribution previews are available for download at the following links:<br />
==== Server 5.0 ====<br />
<br />
* i586: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090617-office-server-i586-ru-install-cd.iso (543 Mb) <br />
<br />
MD5: 9c05a496cf6d9c2935bc33860120af8a<br />
<br />
* x86_64: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090617-office-server-x86_64-ru-install-cd.iso (560 Mb) <br />
<br />
MD5: 410dabdf129c334f730bccffd0f95462<br />
==== Desktop 5.0 ====<br />
<br />
* i586: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-desktop-i586-ru-install-dvd5.iso (2,9 Gb) <br />
<br />
MD5: f7cdbe0bfc147a1a6f426d848db74ce1<br />
<br />
* x86_64: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-desktop-x86_64-ru-install-dvd5.iso (2,9 Gb) <br />
<br />
MD5: 4e00ac5fedab3a39d0f712cf8ba31817<br />
<br />
==== Gnome Desktop 5.0 ====<br />
<br />
* i586: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-gnome-desktop-i586-ru-install-dvd5.iso (1,7 Gb) <br />
<br />
MD5: 6870e2d106dabd346c48aa2a5c531f63<br />
<br />
* x86_64: ftp://beta.altlinux.org/ark/TP/altlinux-5.0.0_beta-20090615-gnome-desktop-x86_64-ru-install-dvd5.iso (1,8 Gb) <br />
<br />
MD5: 6efc27f90822735aed8e469c172d6cd5<br />
<br />
==== Containers ====<br />
<br />
* KVM: ftp://beta.altlinux.org/ark/TP/kvm-desktop-5.0.bun (3,3 Gb) — a desktop container that is available via any NX client. Credentials: username 'user', password '123' <br />
<br />
MD5: 1a176294804ae4e17cfb91846227a641<br />
<br />
* OpenVZ (i586): ftp://beta.altlinux.org/ark/TP/openvz-mailing-list-i586.bun (228 Mb) — mailing list server (i586) <br />
<br />
MD5: 5064253b1ac5d8e21091a7cb091e7b09<br />
<br />
* OpenVZ (x86_64): ftp://beta.altlinux.org/ark/TP/openvz-mailing-list-x86_64.bun (232 Mb) — mailing list server (i586) <br />
<br />
MD5: b7227c3763363f8df02faebd49ee0c68<br />
<br />
==== Documentation ====<br />
<br />
Instructions on containers development: http://en.altlinux.org/Platform5.0<br />
<br />
=== Known limitations of Technology Preview ===<br />
<br />
* Server 5.0 (web interface)<br />
** Only primary domain controller is supported<br />
** The domain cannot be renamed<br />
** No mail server setup module<br />
** Proxy server does not operate properly<br />
* Desktop 5.0<br />
** Possible artifacts with Intel video<br />
** Multiple invocations of apt-indicator<br />
** The default Plasma theme is not used<br />
** It is impossible to setup root filesystem on a RAID<br />
* Gnome Desktop 5.0<br />
** Possible artifacts with Intel video<br />
** Multiple invocations of apt-indicator<br />
** It is impossible to setup root filesystem on a RAID<br />
<br />
=== Attention! ===<br />
<br />
Technology Preview is not a final release product and is not intended to be used by inexperienced users. Upgrade to future versions is not guaranteed. Please do not use the Platform Five previews and prototypes in a production environment.</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Gear/Introduction&diff=222Gear/Introduction2009-03-09T11:26:49Z<p>AlexeyRusakov: Fixed typos, articles etc.; replaced git checkout -b upstream with git branch upstream in the 1st scenario</p>
<hr />
<div>This is an introduction to [[gear]] for the people who already have the RPM packaging experience and know how to use git.<br />
<br />
== Purpose of gear ==<br />
<br />
Gear is a set of tools for maintenance and release management of RPM packages based on a git repository. A gear-enabled git repository of a software package combines<br />
* software development history<br />
* modifications necessary to produce an RPM package<br />
* rules to bind software releases to specific RPM-based distribution releases<br />
<br />
Developers using Gear need to understand<br />
* a format of the rules file describing transformation procedures that convert a given git changeset and branches to a number of source files for a RPM package<br />
* utilities for building packages and working with source code (importing upstream sources and managing patches)<br />
<br />
== RPM-specific stuff ==<br />
<br />
RPM source packages are built using the following files:<br />
* .spec file, which is roughly debian/* without debian/patches/*<br />
* a number of source files/archives<br />
* optionally patches containing local fixes to the upstream source code<br />
<br />
Gear gives a way to automate generation of patches and source files off the git repostiory.<br />
<br />
== Working with upstream source code ==<br />
<br />
A source code of a project is generally tracked in a separate branch that could be synchronized with a corresponding upstream repository by traditional git tools. When the upstream of the project does not use a VCS that allows direct import into git, the source code can still be managed with archives and source RPM packages.<br />
<br />
=== SRPMs ===<br />
<br />
$ gear-srpmimport some-0.1.src.rpm<br />
$ gear-srpmimport some-0.2.src.rpm<br />
...<br />
<br />
will import the given SRPMs to the branch ("srpms" by default) in the<br />
repository (like git-import-dsc).<br />
<br />
Importing SRPM creates a git layout similar to the "Like SRPM" scenario<br />
described below.<br />
<br />
=== Tarballs ===<br />
<br />
$ gear-update foo-0.2.tar.gz foo<br />
$ gear-update foo-2.0.tar.gz foo<br />
...<br />
<br />
will update the subdirectory foo in the git repository with the contents of<br />
the tarball. This operation is similar to <tt>git-import-orig</tt> from<br />
<tt>dpkg-buildpackage</tt>. As SRPMs may contain several sources, the source code is usually stored in a subdirectory of the repository.<br />
<br />
=== Upstream VCS ===<br />
<br />
This should be obvious: just fetch/pull if the upstream uses git, or use conversion tools (e.g. svn2git, cvs2git) if it has not yet migrated to git.<br />
<br />
== Packaging and patching ==<br />
<br />
There are three major scenarios for keeping changes in the repository:<br />
* Work with changes much like in SRPM era<br />
* Keep patches in one branch<br />
* Keep patches in specialized topic branches<br />
<br />
=== Scenario 1. "Like SRPM" ===<br />
<br />
This simple scenario where git is used just for keeping history, and the usual maintainer's workflow is not changed.<br />
<br />
Branches in repository:<br />
master<br />
upstream<br />
<br />
Tree layout:<br />
foo/ (in upstream, master)<br />
.gear/rules (in master)<br />
foo.spec (in master)<br />
foo-something-fixed.patch (in master)<br />
foo-another-fixed.patch (in master)<br />
<br />
git repository is generated by importing SRPMs or by creating from scratch.<br />
<br />
==== Importing tarball to the upstream branch ====<br />
<br />
Use master branch to make it a bit easier<br />
<br />
$ mkdir foo<br />
$ cd foo<br />
$ git init foo<br />
$ gear-update ../foo-1.0.tar.gz foo<br />
$ git branch upstream<br />
<br />
==== Add spec and patches ====<br />
<br />
$ vi foo.spec<br />
$ vi foo-something-fixed.patch<br />
$ vi foo-another-fixed.patch<br />
<br />
==== Add gear/rules ====<br />
<br />
The .gear/rules will have the following content:<br />
<br />
copy: foo-something-fixed.patch<br />
copy: foo-another-fixed.patch<br />
tar.gz: foo<br />
<br />
This sample rules file describes a source tarball from a <tt>foo</tt> directory and two patches. <br />
<br />
Specfile is picked up automatically if there is only .spec in the root<br />
directory fo git.<br />
<br />
==== Commiting the stuff ====<br />
<br />
Gear is relying on the whole history being recorded by git. This means that any changes you'd like to see in RPM, must be committed to the repository.<br />
<br />
$ git add . # Commit the entire workdir<br />
$ gear-commit # this is a wrapper around git-commit which uses the last<br />
# changelog entry as a commit message.<br />
<br />
=== Scenario 2. "Small fixes" ===<br />
<br />
This scenario is useful for packages which deviate from upstream with a small number of non-overlapping<br />
fixes here and there. This is also the easiest scenario to use.<br />
<br />
Branches in repository:<br />
master<br />
upstream<br />
<br />
Tree layout:<br />
foo/ (in upstream, patched in master)<br />
.gear/rules (in master)<br />
foo.spec (in master)<br />
<br />
==== Working on package ====<br />
<br />
$ git checkout master<br />
$ vim ... # hack-hack<br />
$ git add ... # add new files if needed (optional)<br />
$ git commit<br />
<br />
All the changes are applied just on top of the upstream source code.<br />
<br />
==== .gear/rules ====<br />
<br />
The .gear/rules file will be of the following form:<br />
<br />
tar: v@version@:foo<br />
diff: diff: v@version@:foo foo<br />
<br />
This will generate foo.tar, containing upstream source code, taken from<br />
the tag <tt>v${version}</tt>, where version is parsed from the <tt>foo.spec</tt>, and the diff is containing the difference between the directory foo in <tt>v${version}</tt> tag and current content of the directory foo.<br />
<br />
Gear does not use real git tags, but instead it uses the tags stored in <tt>.gear/tags</tt>. The reason for that is to keep packages reproduceable over time as tags may move but SHA1 labels recorded at the time of run of <tt>gear-update-tag</tt> will be able to address original changesets properly.<br />
<br />
The <tt>gear-update-tag</tt> utility writes down SHA1 lables of all tags referenced in package process to <tt>.gear/tags</tt>.<br />
<br />
$ gear-update-tag --all<br />
<br />
Don't forget to commit the changes after updating:<br />
<br />
$ git-commit .gear/tags -m 'tags updated'<br />
<br />
==== Rebasing to a new upstream version ====<br />
<br />
$ git merge upstream<br />
... Fix conflicts, update changelog, remove unnecesary patches etc ...<br />
$ gear-commit<br />
<br />
That's all! As patches are stored in a git branch, it's easy to update to<br />
a new upstream version: merge will detect most incosistences. As an<br />
additional bonus, if the upstream uses git as well, patches forwarded<br />
upstream and accepted there will not generate conflicts on merge.<br />
<br />
==== New package revision ====<br />
<br />
$ vim ... # hack-hack, update changelog<br />
$ gear-commit<br />
<br />
Also simple.<br />
<br />
=== Scenario 3. "Full-blown development" ===<br />
<br />
This is a scenario for the packages where downstream maintainers do a lot of work (e.g. kernel) or they are upstream themselves. In this case each separate feature is maintained in a separate branch and gear rules are used to automatically produce patches for RPM.<br />
<br />
Branches:<br />
upstream<br />
topic-A<br />
topic-B<br />
...<br />
master<br />
<br />
Tree layout:<br />
foo/ (in upstream, patched in topic-*, master)<br />
.gear/rules (in master)<br />
foo.spec (in master)<br />
<br />
==== Working on package ====<br />
<br />
All the work is done in topic branches, each is dedicated to some feature:<br />
<br />
$ git checkout topic-A<br />
$ vim ... # hack-hack-hack<br />
$ git commit<br />
$ git checkout topic-B<br />
...<br />
<br />
As patches may overlap, some conflict resolution needs to be<br />
involved. The naive approach would be using the following branching<br />
scheme:<br />
<br />
* upstream<br />
|<br />
\--> topic-A<br />
\--> topic-B<br />
\--> master<br />
<br />
And then generating patch-per-topic by using .gear/rules. This will not always work, as the generated patches might conflict.<br />
<br />
To address the issue branching off each feature topic could be used:<br />
<br />
* upstream<br />
\-> topic-A<br />
\-> topic-B<br />
\-> master<br />
<br />
And gear-merge(1) utility merges the branches as described in .gear/merge file:<br />
<br />
merge: upstream topic-A<br />
merge: topic-A topic-B<br />
merge: topic-B master<br />
<br />
After using this utility (and resolving all possible conflicts), master branch gets a cumulative change.<br />
<br />
==== .gear/rules ====<br />
<br />
The .gear/rules file will be exactly the same as for the previous scenario,<br />
so the gear-update-tag(1) is also required:<br />
<br />
tar: v@version@:foo<br />
diff: diff: v@version@:foo foo<br />
<br />
==== Rebasing to a new upstream version ====<br />
<br />
$ ... # obtain the new upstream code in upstream branch<br />
$ gear-merge<br />
... Fix conflicts, update changelog, remove unnecessary patches etc...<br />
$ gear-commit<br />
<br />
Due to gear-merge, it's only necessary to fix the conflicts once.<br />
<br />
==== New package revision ====<br />
<br />
$ vim ... # hack-hack, commit<br />
$ gear-merge<br />
<br />
== Builds ==<br />
<br />
$ gear-hsh<br />
<br />
<tt>gear-hsh</tt> first uses .gear/rules file to produce all needed parts of a SRPM. After that gear will supply a created SRPM to a [[hasher]] build environment.<br />
<br />
There are also other build commands: gear-rpm (uses <tt>rpmbuild</tt> instead of [[hasher]]) and gear-remote-hsh/gear-remote-rpm, which use remote host for actual building (communicating over SSH).<br />
<br />
<br />
[[Category:Sisyphus]]<br />
[[Category:Devel]]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=189Git.alt reference2009-02-15T11:56:31Z<p>AlexeyRusakov: Translated a chapter about packages building</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
<br />
This page describes [[git.alt]] commands; it is not a manual or a tutorial.<br />
<br />
__TOC__<br />
<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> and <tt>rsync:</tt> provide immediate access to repositories. With <tt>git:</tt>, <tt>rsync:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located at [http://git.altlinux.org/ git.altlinux.org] and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
== SSH access ==<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
To work with <tt>git.alt</tt> you should setup your <tt>git</tt>, namely <tt>user.name</tt>, <tt>user.email</tt>, and <tt>user.signingkey</tt> global parameters:<br />
$ git config --global user.signingkey "<Your GPG key ID to sign tags>"<br />
$ git config --global user.email "<your maintainer e-mail>"<br />
$ git config --global user.name "FirstName LastName"<br />
Example:<br />
$ git config --global user.signingkey 0xA26F54C8<br />
$ git config --global user.email dottedmag@altlinux.org<br />
$ git config --global user.name "Mikhail Gusarov"<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
acl {--help|<binary package repository name> ...}<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
=== Managing repositories ===<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
=== Managing ACLs ===<br />
<br />
<!--''Смотри [[ACL]] для общей информации об ACL пакетов в Sisyphus.''--><br />
<br />
The first parameter of <tt>acl</tt> command should be a binary package repository (do not confuse with a git repository), ACLs of which are managed. At the moment there is the only possible value of this parameter, and it is <tt>sisyphus</tt>.<br />
<br />
If there is no subcommand after <tt>acl <repository></tt> in the command-line, then subcommands are expected on standard input, one subcommand per line, with EOF (Control-D) terminating the list. The list of subcommands obtained this way is executed as a transaction, i.e. an error in one subcommand cancels the whole bundle.<br />
$ ssh git.alt acl sisyphus keyjnote<br />
girar-acl: Go ahead and type your commands<br />
'''keyjnote add peet'''<br />
'''keyjnote add raorn'''<br />
'''^D'''<br />
girar-acl: 2 command(s) queued<br />
$<br />
<br />
Any command that alters the maintainers group or a package ACL, can only be issued by ''the leader'', the maintainer that is the first in the corresponding list of group members or ACL. All such operations are performed asynchronously, the result is sent to the leader's e-mail.<br />
<br />
==== acl show ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> show'''<br />
Displays the ACL of the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla show<br />
bugzilla @nobody<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> show'''<br />
Displays members of the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyhpus @python show<br />
@python ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas<br />
<br />
==== acl check ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> check'''<br />
Displays allowed/denied status of the command issuer for the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla check<br />
girar-check-perms: access to bugzilla ALLOWED for ldv: project is orphaned<br />
<br />
==== acl add/del ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...<br />
Adds/Deletes the specified login or group to/from the specified package ACL.<br />
<br />
$ ssh git.alt acl sisyphus keyjnote add damir<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus keyjnote del damir<br />
girar-acl: 1 command(s) queued<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...<br />
Add/Delete members to/from the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyphus ns add @python<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus ns del @python<br />
girar-acl: 1 command(s) queued<br />
<br />
==== acl replace ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>'''<br />
Replaces the former record in the package ACL with the latter one.<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python<br />
Replaces in the ACL of <tt>keyjnote</tt> the record <tt>dottedmag</tt> with <tt>@python</tt>.<br />
<br />
==== acl leader ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> leader <login>|@<group><br />
Sets the package leader. When the group is specified as the latest parameter, the leader of this group becomes the leader of the package. The person that is set as a leader may or may not be in the ACL prior to execution of this command.<br />
<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote leader @python<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group><br />
The same as above, but for a maintainers group instead of a package. Again, it is not a pre-requisite for the user that is set as a leader to be in the ACL prior to the operation.<br />
<br />
$ ssh git.alt acl sisyphus @python leader ns<br />
<br />
==== acl nmu ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]'''<br />
Allows/Denies a non-maintainer upload ([[NMU]]) for the specified package.<br />
<br />
Parameters:<br />
* '''login''' — the login allowed to perform a NMU. '''*''' or ommission of the parameter means "anybody".<br />
* '''start date''' — unixtime, since which NMU is allowed. Omitted parameter means "from now on".<br />
* '''end date''' — unixtime, until which NMU is allowed. Omitted parameter means "forever".<br />
<br />
NMU denial needs a login as a parameter; <tt>del *</tt> won't deny all NMUs that were allowed for the package. From the other hand, <tt>del user</tt> denies all NMUs, that were allowed for the specified user.<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu show'''<br />
Displays the list of allowed NMUs, in the following form:<br />
<package> <login> <start date> <end date><br />
<br />
0 in ''end date'' means "forever".<br />
<br />
=== Building packages with [[gear]] ===<br />
<br />
Building packages is performed in ''tasks''. A user creates a task and specifies packages that should be built in one transaction. After that the user queues the task for execution. Tasks are executed asynchronously. After successful or unsuccessful completion, a report is sent to the user by e-mail.<br />
<br />
==== task ====<br />
<br />
In all commands, omitted <task_id> means the latest user's task; omitted <binary repository name> means <tt>sisyphus</tt>.<br />
<br />
'''$ ssh git.alt task ls [--all]'''<br />
Displays the current list of all user's tasks, with their status and short summary.<br /><br />
With <tt>--all</tt> parameter, shows the list of all users' tasks.<br />
'''$ ssh git.alt task show [<task_id>]'''<br />
Displays contents of the specified task.<br />
'''$ ssh git.alt task new [<binary_repository_name>]'''<br />
Creates a new empty task for building or copying packages.<br /><br />
The list of allowed binary repository identifiers can be obtained with <tt>task new --help</tt>.<br /><br />
'''$ ssh git.alt task add [<task_id>] repo <gear_repo> <gear_tag>'''<br />
Adds a package for building to the task with <task_id>.<br /><br />
The package is identified by two mandatory parameters: path to gear repository of the package and git tag that specifies a certain snapshot in this repository.<br />
'''$ ssh git.alt task add [<task_id>] copy <package> [<binary_repository_name>]'''<br />
Adds to the task with <task_id> a package for copying from the binary repository specified in the command to the repository of the task (the one that was specified in <tt>task new</tt> command).<br />
'''$ ssh git.alt task add [<task_id>] del <package>'''<br />
Adds to the task a package for deletion from the binary repository of the task.<br />
'''$ ssh git.alt task delsub <task_id> <subtask_id>'''<br />
Removes a subtask (created with <tt>task add</tt>) from the task. Note that all parameters are mandatory.<br />
'''$ ssh git.alt task run [<task_id>]'''<br />
Queues the task for execution. Unlike all other commands, this one is asynchronous.<br />
'''$ ssh git.alt task share [<task_id>] <status|enabled|disabled>'''<br />
Displays/Alters the access mode for the task.<br /><br />
A task with ''share enabled'' access can be filled with subtasks by other users (by means of <tt>task add</tt> command). The default access mode for all tasks is ''share disabled''.<br /><br />
'''$ ssh git.alt task approve <task_id> <subtask_id>'''<br />
Approves a subtask with the specified number. Note that all parameters are mandatory.<br /><br />
This command is used to allow building packages by users who normally don't have the rights for that (non-maintainer uploads, [[NMU]]).<br />
'''$ ssh git.alt task rm [<task_id>]'''<br />
Deletes the task along with its subtasks.<br />
<br />
An example of a building session follows:<br />
$ ssh git.alt task ls<br />
girar-task ls: no tasks for ldv<br />
$ ssh git.alt task new<br />
1234<br />
new task #1234: owner=ldv repo=sisyphus<br />
$ ssh git.alt task ls<br />
#1234 NEW sisyphus<br />
$ ssh git.alt task show<br />
id=1234 locked=no shared=no repo=sisyphus owner=ldv seq= rc=<br />
$ ssh git.alt task add repo vitmp 1.0-alt4<br />
task #1234: added #1 build tag 1.0-alt4 from /people/ldv/packages/vitmp.git<br />
$ ssh git.alt task show<br />
id=1234 locked=no shared=no repo=sisyphus owner=ldv seq= rc=<br />
1:dir=/people/ldv/packages/vitmp.git<br />
1:tag_name=1.0-alt4<br />
1:tag_id=11c24aa6683506efd89b174de8dbea2af1cebf84<br />
1:tag_author=Dmitry V. Levin (for packages) <ldv@altlinux.org><br />
1:userid=ldv<br />
$ ssh git.alt task run<br />
task #1234: try=1 queued, result will be emailed to ldv@altlinux.org<br />
$ ssh git.alt task ls<br />
#1234 AWAITING sisyphus vitmp.git=1.0-alt4<br />
...after some time, which may vary from task to task...<br />
$ ssh git.alt task ls<br />
#1234 BUILDING [locked] sisyphus vitmp.git=1.0-alt4<br />
...after completion...<br />
$ ssh git.alt task ls<br />
#1234 DONE sisyphus vitmp.git=1.0-alt4<br />
<br />
==== build ====<br />
<br />
'''$ ssh git.alt build [-b <binary_repository_name>] <gear_repo_path 1> <gear_tag_name 1> ...'''<br />
This command is a macro for ordinary package building tasks. It creates a task with <tt>task new</tt>, fills it with subtasks with a proper number of <tt>task add</tt> and then invokes a task for execution with <tt>task run</tt>.<br /><br />
<binary repository name> is the repository name for <tt>task new</tt> command.<br /><br />
<gear repo path> and <gear tag name> specify a package (see <tt>task add</tt>).<br />
<br />
=== Auxiliary commands ===<br />
<br />
==== charset ====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
==== quota ====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
==== git-receive-pack, git-upload-pack ====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt>&nbsp;&mdash; this file contains all repos from <tt>/people/$USERNAME/packages/</tt> directories along with unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=188Git.alt reference2009-02-15T01:29:41Z<p>AlexeyRusakov: Fixed the structure</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
<br />
This page describes [[git.alt]] commands; it is not a manual or a tutorial.<br />
<br />
__TOC__<br />
<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> and <tt>rsync:</tt> provide immediate access to repositories. With <tt>git:</tt>, <tt>rsync:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located at [http://git.altlinux.org/ git.altlinux.org] and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
== SSH access ==<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
To work with <tt>git.alt</tt> you should setup your <tt>git</tt>, namely <tt>user.name</tt>, <tt>user.email</tt>, and <tt>user.signingkey</tt> global parameters:<br />
$ git config --global user.signingkey "<Your GPG key ID to sign tags>"<br />
$ git config --global user.email "<your maintainer e-mail>"<br />
$ git config --global user.name "FirstName LastName"<br />
Example:<br />
$ git config --global user.signingkey 0xA26F54C8<br />
$ git config --global user.email dottedmag@altlinux.org<br />
$ git config --global user.name "Mikhail Gusarov"<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
acl {--help|<binary package repository name> ...}<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
=== Managing repositories ===<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
=== Managing ACLs ===<br />
<br />
<!--''Смотри [[ACL]] для общей информации об ACL пакетов в Sisyphus.''--><br />
<br />
The first parameter of <tt>acl</tt> command should be a package repository (do not confuse with a git repository), ACLs of which are managed. At the moment there is the only possible value of this parameter, and it is <tt>sisyphus</tt>.<br />
<br />
If there is no subcommand after <tt>acl <repository></tt> in the command-line, then subcommands are expected on standard input, one subcommand per line, with EOF (Control-D) terminating the list. The list of subcommands obtained this way is executed as a transaction, i.e. an error in one subcommand cancels the whole bundle.<br />
$ ssh git.alt acl sisyphus keyjnote<br />
girar-acl: Go ahead and type your commands<br />
'''keyjnote add peet'''<br />
'''keyjnote add raorn'''<br />
'''^D'''<br />
girar-acl: 2 command(s) queued<br />
$<br />
<br />
Any command that alters the maintainers group or a package ACL, can only be issued by ''the leader'', the maintainer that is the first in the corresponding list of group members or ACL. All such operations are performed asynchronously, the result is sent to the leader's e-mail.<br />
<br />
==== acl show ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> show'''<br />
Displays the ACL of the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla show<br />
bugzilla @nobody<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> show'''<br />
Displays members of the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyhpus @python show<br />
@python ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas<br />
<br />
==== acl check ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> check'''<br />
Displays allowed/denied status of the command issuer for the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla check<br />
girar-check-perms: access to bugzilla ALLOWED for ldv: project is orphaned<br />
<br />
==== acl add/del ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...<br />
Adds/Deletes the specified login or group to/from the specified package ACL.<br />
<br />
$ ssh git.alt acl sisyphus keyjnote add damir<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus keyjnote del damir<br />
girar-acl: 1 command(s) queued<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...<br />
Add/Delete members to/from the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyphus ns add @python<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus ns del @python<br />
girar-acl: 1 command(s) queued<br />
<br />
==== acl replace ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>'''<br />
Replaces the former record in the package ACL with the latter one.<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python<br />
Replaces in the ACL of <tt>keyjnote</tt> the record <tt>dottedmag</tt> with <tt>@python</tt>.<br />
<br />
==== acl leader ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> leader <login>|@<group><br />
Sets the package leader. When the group is specified as the latest parameter, the leader of this group becomes the leader of the package. The person that is set as a leader may or may not be in the ACL prior to execution of this command.<br />
<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote leader @python<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group><br />
The same as above, but for a maintainers group instead of a package. Again, it is not a pre-requisite for the user that is set as a leader to be in the ACL prior to the operation.<br />
<br />
$ ssh git.alt acl sisyphus @python leader ns<br />
<br />
==== acl nmu ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]'''<br />
Allows/Denies a non-maintainer upload ([[NMU]]) for the specified package.<br />
<br />
Parameters:<br />
* '''login''' — the login allowed to perform a NMU. '''*''' or ommission of the parameter means "anybody".<br />
* '''start date''' — unixtime, since which NMU is allowed. Omitted parameter means "from now on".<br />
* '''end date''' — unixtime, until which NMU is allowed. Omitted parameter means "forever".<br />
<br />
NMU denial needs a login; <tt>del *</tt> won't deny all NMUs that were allowed for the package. From the other hand, <tt>del user</tt> denies all NMUs, that were allowed for the specified user.<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu show'''<br />
Displays the list of allowed NMUs, in the following form:<br />
<package> <login> <start date> <end date><br />
<br />
0 in ''end date'' means "forever".<br />
<br />
=== Auxiliary commands ===<br />
<br />
==== charset ====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
==== quota ====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
==== git-receive-pack, git-upload-pack ====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt>&nbsp;&mdash; this file contains all repos from <tt>/people/$USERNAME/packages/</tt> directories along with unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=187Git.alt reference2009-02-15T01:29:00Z<p>AlexeyRusakov: Fixed the structure</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
<br />
This page describes [[git.alt]] commands; it is not a manual or a tutorial.<br />
<br />
__TOC__<br />
<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> and <tt>rsync:</tt> provide immediate access to repositories. With <tt>git:</tt>, <tt>rsync:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located at [http://git.altlinux.org/ git.altlinux.org] and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
To work with <tt>git.alt</tt> you should setup your <tt>git</tt>, namely <tt>user.name</tt>, <tt>user.email</tt>, and <tt>user.signingkey</tt> global parameters:<br />
$ git config --global user.signingkey "<Your GPG key ID to sign tags>"<br />
$ git config --global user.email "<your maintainer e-mail>"<br />
$ git config --global user.name "FirstName LastName"<br />
Example:<br />
$ git config --global user.signingkey 0xA26F54C8<br />
$ git config --global user.email dottedmag@altlinux.org<br />
$ git config --global user.name "Mikhail Gusarov"<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
acl {--help|<binary package repository name> ...}<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
=== Managing repositories ===<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
=== Managing ACLs ===<br />
<br />
<!--''Смотри [[ACL]] для общей информации об ACL пакетов в Sisyphus.''--><br />
<br />
The first parameter of <tt>acl</tt> command should be a package repository (do not confuse with a git repository), ACLs of which are managed. At the moment there is the only possible value of this parameter, and it is <tt>sisyphus</tt>.<br />
<br />
If there is no subcommand after <tt>acl <repository></tt> in the command-line, then subcommands are expected on standard input, one subcommand per line, with EOF (Control-D) terminating the list. The list of subcommands obtained this way is executed as a transaction, i.e. an error in one subcommand cancels the whole bundle.<br />
$ ssh git.alt acl sisyphus keyjnote<br />
girar-acl: Go ahead and type your commands<br />
'''keyjnote add peet'''<br />
'''keyjnote add raorn'''<br />
'''^D'''<br />
girar-acl: 2 command(s) queued<br />
$<br />
<br />
Any command that alters the maintainers group or a package ACL, can only be issued by ''the leader'', the maintainer that is the first in the corresponding list of group members or ACL. All such operations are performed asynchronously, the result is sent to the leader's e-mail.<br />
<br />
==== acl show ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> show'''<br />
Displays the ACL of the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla show<br />
bugzilla @nobody<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> show'''<br />
Displays members of the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyhpus @python show<br />
@python ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas<br />
<br />
==== acl check ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> check'''<br />
Displays allowed/denied status of the command issuer for the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla check<br />
girar-check-perms: access to bugzilla ALLOWED for ldv: project is orphaned<br />
<br />
==== acl add/del ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...<br />
Adds/Deletes the specified login or group to/from the specified package ACL.<br />
<br />
$ ssh git.alt acl sisyphus keyjnote add damir<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus keyjnote del damir<br />
girar-acl: 1 command(s) queued<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...<br />
Add/Delete members to/from the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyphus ns add @python<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus ns del @python<br />
girar-acl: 1 command(s) queued<br />
<br />
==== acl replace ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>'''<br />
Replaces the former record in the package ACL with the latter one.<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python<br />
Replaces in the ACL of <tt>keyjnote</tt> the record <tt>dottedmag</tt> with <tt>@python</tt>.<br />
<br />
==== acl leader ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> leader <login>|@<group><br />
Sets the package leader. When the group is specified as the latest parameter, the leader of this group becomes the leader of the package. The person that is set as a leader may or may not be in the ACL prior to execution of this command.<br />
<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote leader @python<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group><br />
The same as above, but for a maintainers group instead of a package. Again, it is not a pre-requisite for the user that is set as a leader to be in the ACL prior to the operation.<br />
<br />
$ ssh git.alt acl sisyphus @python leader ns<br />
<br />
==== acl nmu ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]'''<br />
Allows/Denies a non-maintainer upload ([[NMU]]) for the specified package.<br />
<br />
Parameters:<br />
* '''login''' — the login allowed to perform a NMU. '''*''' or ommission of the parameter means "anybody".<br />
* '''start date''' — unixtime, since which NMU is allowed. Omitted parameter means "from now on".<br />
* '''end date''' — unixtime, until which NMU is allowed. Omitted parameter means "forever".<br />
<br />
NMU denial needs a login; <tt>del *</tt> won't deny all NMUs that were allowed for the package. From the other hand, <tt>del user</tt> denies all NMUs, that were allowed for the specified user.<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu show'''<br />
Displays the list of allowed NMUs, in the following form:<br />
<package> <login> <start date> <end date><br />
<br />
0 in ''end date'' means "forever".<br />
<br />
=== Auxiliary commands ===<br />
<br />
==== charset ====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
==== quota ====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
==== git-receive-pack, git-upload-pack ====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt>&nbsp;&mdash; this file contains all repos from <tt>/people/$USERNAME/packages/</tt> directories along with unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=186Git.alt reference2009-02-15T01:28:22Z<p>AlexeyRusakov: Fixed the structure</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
<br />
This page describes [[git.alt]] commands; it is not a manual or a tutorial.<br />
<br />
__TOC__<br />
<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> and <tt>rsync:</tt> provide immediate access to repositories. With <tt>git:</tt>, <tt>rsync:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located at [http://git.altlinux.org/ git.altlinux.org] and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
To work with <tt>git.alt</tt> you should setup your <tt>git</tt>, namely <tt>user.name</tt>, <tt>user.email</tt>, and <tt>user.signingkey</tt> global parameters:<br />
$ git config --global user.signingkey "<Your GPG key ID to sign tags>"<br />
$ git config --global user.email "<your maintainer e-mail>"<br />
$ git config --global user.name "FirstName LastName"<br />
Example:<br />
$ git config --global user.signingkey 0xA26F54C8<br />
$ git config --global user.email dottedmag@altlinux.org<br />
$ git config --global user.name "Mikhail Gusarov"<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
acl {--help|<binary package repository name> ...}<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
=== Managing repositories ===<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
=== Managing ACLs ===<br />
<br />
<!--''Смотри [[ACL]] для общей информации об ACL пакетов в Sisyphus.''--><br />
<br />
The first parameter of <tt>acl</tt> command should be a package repository (do not confuse with a git repository), ACLs of which are managed. At the moment there is the only possible value of this parameter, and it is <tt>sisyphus</tt>.<br />
<br />
If there is no subcommand after <tt>acl <repository></tt> in the command-line, then subcommands are expected on standard input, one subcommand per line, with EOF (Control-D) terminating the list. The list of subcommands obtained this way is executed as a transaction, i.e. an error in one subcommand cancels the whole bundle.<br />
$ ssh git.alt acl sisyphus keyjnote<br />
girar-acl: Go ahead and type your commands<br />
'''keyjnote add peet'''<br />
'''keyjnote add raorn'''<br />
'''^D'''<br />
girar-acl: 2 command(s) queued<br />
$<br />
<br />
Any command that alters the maintainers group or a package ACL, can only be issued by ''the leader'', the maintainer that is the first in the corresponding list of group members or ACL. All such operations are performed asynchronously, the result is sent to the leader's e-mail.<br />
<br />
==== acl show ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> show'''<br />
Displays the ACL of the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla show<br />
bugzilla @nobody<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> show'''<br />
Displays members of the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyhpus @python show<br />
@python ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas<br />
<br />
==== acl check ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> check'''<br />
Displays allowed/denied status of the command issuer for the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla check<br />
girar-check-perms: access to bugzilla ALLOWED for ldv: project is orphaned<br />
<br />
==== acl add/del ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...<br />
Adds/Deletes the specified login or group to/from the specified package ACL.<br />
<br />
$ ssh git.alt acl sisyphus keyjnote add damir<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus keyjnote del damir<br />
girar-acl: 1 command(s) queued<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...<br />
Add/Delete members to/from the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyphus ns add @python<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus ns del @python<br />
girar-acl: 1 command(s) queued<br />
<br />
==== acl replace ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>'''<br />
Replaces the former record in the package ACL with the latter one.<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python<br />
Replaces in the ACL of <tt>keyjnote</tt> the record <tt>dottedmag</tt> with <tt>@python</tt>.<br />
<br />
==== acl leader ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> leader <login>|@<group><br />
Sets the package leader. When the group is specified as the latest parameter, the leader of this group becomes the leader of the package. The person that is set as a leader may or may not be in the ACL prior to execution of this command.<br />
<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote leader @python<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group><br />
The same as above, but for a maintainers group instead of a package. Again, it is not a pre-requisite for the user that is set as a leader to be in the ACL prior to the operation.<br />
<br />
$ ssh git.alt acl sisyphus @python leader ns<br />
<br />
==== acl nmu ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]'''<br />
Allows/Denies a non-maintainer upload ([[NMU]]) for the specified package.<br />
<br />
Parameters:<br />
* '''login''' — the login allowed to perform a NMU. '''*''' or ommission of the parameter means "anybody".<br />
* '''start date''' — unixtime, since which NMU is allowed. Omitted parameter means "from now on".<br />
* '''end date''' — unixtime, until which NMU is allowed. Omitted parameter means "forever".<br />
<br />
NMU denial needs a login; <tt>del *</tt> won't deny all NMUs that were allowed for the package. From the other hand, <tt>del user</tt> denies all NMUs, that were allowed for the specified user.<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu show'''<br />
Displays the list of allowed NMUs, in the following form:<br />
<package> <login> <start date> <end date><br />
<br />
0 in ''end date'' means "forever".<br />
<br />
=== Auxiliary commands ===<br />
<br />
==== charset ====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
==== quota ====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt>&nbsp;&mdash; this file contains all repos from <tt>/people/$USERNAME/packages/</tt> directories along with unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=185Git.alt reference2009-02-15T01:25:45Z<p>AlexeyRusakov: Added translation of acl commands reference. task and build commands, repository structure and subscriptions stay un-translated.</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
<br />
This page describes [[git.alt]] commands; it is not a manual or a tutorial.<br />
<br />
__TOC__<br />
<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> and <tt>rsync:</tt> provide immediate access to repositories. With <tt>git:</tt>, <tt>rsync:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located at [http://git.altlinux.org/ git.altlinux.org] and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
To work with <tt>git.alt</tt> you should setup your <tt>git</tt>, namely <tt>user.name</tt>, <tt>user.email</tt>, and <tt>user.signingkey</tt> global parameters:<br />
$ git config --global user.signingkey "<Your GPG key ID to sign tags>"<br />
$ git config --global user.email "<your maintainer e-mail>"<br />
$ git config --global user.name "FirstName LastName"<br />
Example:<br />
$ git config --global user.signingkey 0xA26F54C8<br />
$ git config --global user.email dottedmag@altlinux.org<br />
$ git config --global user.name "Mikhail Gusarov"<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
acl {--help|<binary package repository name> ...}<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
=== Managing repositories ===<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
=== Managing ACLs ===<br />
<br />
<!--''Смотри [[ACL]] для общей информации об ACL пакетов в Sisyphus.''--><br />
<br />
The first parameter of <tt>acl</tt> command should be a package repository (do not confuse with a git repository), ACLs of which are managed. At the moment there is the only possible value of this parameter, and it is <tt>sisyphus</tt>.<br />
<br />
If there is no subcommand after <tt>acl <repository></tt> in the command-line, then subcommands are expected on standard input, one subcommand per line, with EOF (Control-D) terminating the list. The list of subcommands obtained this way is executed as a transaction, i.e. an error in one subcommand cancels the whole bundle.<br />
$ ssh git.alt acl sisyphus keyjnote<br />
girar-acl: Go ahead and type your commands<br />
'''keyjnote add peet'''<br />
'''keyjnote add raorn'''<br />
'''^D'''<br />
girar-acl: 2 command(s) queued<br />
$<br />
<br />
Any command that alters the maintainers group or a package ACL, can only be issued by ''the leader'', the maintainer that is the first in the corresponding list of group members or ACL. All such operations are performed asynchronously, the result is sent to the leader's e-mail.<br />
<br />
==== acl show ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> show'''<br />
Displays the ACL of the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla show<br />
bugzilla @nobody<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> show'''<br />
Displays members of the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyhpus @python show<br />
@python ns ldv george akhavr bga lav swi at hiddenman sin mithraen kas<br />
<br />
==== acl check ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> check'''<br />
Displays allowed/denied status of the command issuer for the specified package.<br />
<br />
$ ssh git.alt acl sisyphus bugzilla check<br />
girar-check-perms: access to bugzilla ALLOWED for ldv: project is orphaned<br />
<br />
==== acl add/del ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> add|del <login>|@<group> ...<br />
Adds/Deletes the specified login or group to/from the specified package ACL.<br />
<br />
$ ssh git.alt acl sisyphus keyjnote add damir<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus keyjnote del damir<br />
girar-acl: 1 command(s) queued<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> add|del <login>|@<group> ...<br />
Add/Delete members to/from the specified maintainers group.<br />
<br />
$ ssh git.alt acl sisyphus ns add @python<br />
girar-acl: 1 command(s) queued<br />
$ ssh git.alt acl sisyphus ns del @python<br />
girar-acl: 1 command(s) queued<br />
<br />
==== acl replace ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package>|@<group> replace <login>|@<group> <login>|@<group>'''<br />
Replaces the former record in the package ACL with the latter one.<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote replace dottedmag @python<br />
Replaces in the ACL of <tt>keyjnote</tt> the record <tt>dottedmag</tt> with <tt>@python</tt>.<br />
<br />
==== acl leader ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> leader <login>|@<group><br />
Sets the package leader. When the group is specified as the latest parameter, the leader of this group becomes the leader of the package. The person that is set as a leader may or may not be in the ACL prior to execution of this command.<br />
<br />
Example:<br />
$ ssh git.alt acl sisyphus keyjnote leader @python<br />
<br />
'''$ ssh git.alt acl <binary repository> @<group> leader <login>|@<group><br />
The same as above, but for a maintainers group instead of a package. Again, it is not a pre-requisite for the user that is set as a leader to be in the ACL prior to the operation.<br />
<br />
$ ssh git.alt acl sisyphus @python leader ns<br />
<br />
==== acl nmu ====<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu add|del [<login> [<start date> [<end date>]]]'''<br />
Allows/Denies a non-maintainer upload ([[NMU]]) for the specified package.<br />
<br />
Parameters:<br />
* '''login''' — the login allowed to perform a NMU. '''*''' or ommission of the parameter means "anybody".<br />
* '''start date''' — unixtime, since which NMU is allowed. Omitted parameter means "from now on".<br />
* '''end date''' — unixtime, until which NMU is allowed. Omitted parameter means "forever".<br />
<br />
NMU denial needs a login; <tt>del *</tt> won't deny all NMUs that were allowed for the package. From the other hand, <tt>del user</tt> denies all NMUs, that were allowed for the specified user.<br />
<br />
'''$ ssh git.alt acl <binary repository> <package> nmu show'''<br />
Displays the list of allowed NMUs, in the following form:<br />
<package> <login> <start date> <end date><br />
<br />
0 in ''end date'' means "forever".<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt>&nbsp;&mdash; this file contains all repos from <tt>/people/$USERNAME/packages/</tt> directories along with unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Children&diff=157ALT Linux 4.1 Children2008-12-26T18:53:21Z<p>AlexeyRusakov: /* Screenshots */</p>
<hr />
<div>== Description ==<br />
The distribution is intended for children's creativity&nbsp;&mdash; themselves or by<br />
the authority of the teacher&nbsp;&mdash; in the field of computer graphics and digital video. <br />
Basis of the distribution is a training course «Graphics, animation, video», along with <br />
software tools and multimedia materials necessary for carrying out the lessons. ALT Linux 4.1 Children also includes the famous GCompris suite for children under 10 years old, additional background and reference materials, and a small selection of computer games. <br />
<br />
The distribution is a Live CD: it does not require installation on a<br />
hard disk, and is fully operational immediately after boot. A CD-ROM image for burning is available on ALT Linux web site (see the link below).<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Notes ==<br />
# The distribution is not intended to work on the network, hence it does not include network settings.<br />
# The main training course and materials are in Russian only; KDE, GCompris and games are also available in English.<br />
<br />
== Download ==<br />
[http://ftp.altlinux.org/pub/beta/children/altlinux-4.1.0_beta20081221-children-i586-live-cd.iso http://ftp.altlinux.org/pub/beta/children/altlinux-4.1.0_beta20081221-children-i586-live-cd.iso] (686 Мб)<br />
<br />
<pre>7e24e9331198b78066e2577ade20bb09 altlinux-4.1.0_beta20081221-children-i586-live-cd.iso</pre><br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:Children-4.1-bootloader.png|Boot loader<br />
Image:Children-4.1-bootsplash.png|System startup<br />
Image:Children-4.1-splash.png|KDE Startup<br />
Image:Children-4.1-desktop.png|Desktop<br />
Image:Children-4.1-course.png|Course<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Children&diff=156ALT Linux 4.1 Children2008-12-26T18:50:07Z<p>AlexeyRusakov: More editing</p>
<hr />
<div>== Description ==<br />
The distribution is intended for children's creativity&nbsp;&mdash; themselves or by<br />
the authority of the teacher&nbsp;&mdash; in the field of computer graphics and digital video. <br />
Basis of the distribution is a training course «Graphics, animation, video», along with <br />
software tools and multimedia materials necessary for carrying out the lessons. ALT Linux 4.1 Children also includes the famous GCompris suite for children under 10 years old, additional background and reference materials, and a small selection of computer games. <br />
<br />
The distribution is a Live CD: it does not require installation on a<br />
hard disk, and is fully operational immediately after boot. A CD-ROM image for burning is available on ALT Linux web site (see the link below).<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Notes ==<br />
# The distribution is not intended to work on the network, hence it does not include network settings.<br />
# The main training course and materials are in Russian only; KDE, GCompris and games are also available in English.<br />
<br />
== Download ==<br />
[http://ftp.altlinux.org/pub/beta/children/altlinux-4.1.0_beta20081221-children-i586-live-cd.iso http://ftp.altlinux.org/pub/beta/children/altlinux-4.1.0_beta20081221-children-i586-live-cd.iso] (686 Мб)<br />
<br />
<pre>7e24e9331198b78066e2577ade20bb09 altlinux-4.1.0_beta20081221-children-i586-live-cd.iso</pre><br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:Children-4.1-bootloader.png|Boot loader<br />
Image:Children-4.1-bootsplash.png|System startup<br />
Image:Children-4.1-splash.png|KDE Startup<br />
Image:Children-4.1-desktop.png|Desktop<br />
Image:Children-4.1-course.png|Lecture<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Children&diff=155ALT Linux 4.1 Children2008-12-26T17:59:13Z<p>AlexeyRusakov: Edited</p>
<hr />
<div>== Description ==<br />
The distribution is intended for children's creativity&nbsp;&mdash; themselves or by<br />
the authority of the teacher&nbsp;&mdash; in the field of computer graphics and digital video. <br />
Basis of the distribution is a training course «graphics, animation, video», and all <br />
software tools and multimedia materials necessary for carrying out the lessons. ALT Linux 4.1 Children also includes a developmental center for pre-school children, additional background materials and a small selection of computer games. <br />
<br />
Exclusive distribution comes at a Live CD: it does not require installation on a<br />
hard disk, it is fully operational immediately after boot. CD-ROM image for recording is available on ALT Linux web site.<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Notes ==<br />
# Distribution is not intended to work on the network, hence it does not include network settings.<br />
# Default user interface and materials are in Russian only.<br />
<br />
== Download ==<br />
[http://ftp.altlinux.org/pub/beta/children/altlinux-4.1.0_beta20081221-children-i586-live-cd.iso http://ftp.altlinux.org/pub/beta/children/altlinux-4.1.0_beta20081221-children-i586-live-cd.iso] (686 Мб)<br />
<br />
<pre>7e24e9331198b78066e2577ade20bb09 altlinux-4.1.0_beta20081221-children-i586-live-cd.iso</pre><br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:Children-4.1-bootloader.png|Boot loader<br />
Image:Children-4.1-bootsplash.png|System startup<br />
Image:Children-4.1-splash.png|KDE Startup<br />
Image:Children-4.1-desktop.png|Desktop<br />
Image:Children-4.1-course.png|Lecture<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1&diff=138ALT Linux 4.12008-10-07T18:12:29Z<p>AlexeyRusakov: Rephrased a bit</p>
<hr />
<div>[[ru:Releases/41]]<br />
<br />
All ALT Linux 4.1 distributions are based on [[Stable branches|branch]]/4.1. As for the moment of 4.1 Desktop release, packages in branch/4.1 are updated rather actively, so the branch itself is not intended to be used as a source of updates and additional packages for your installed system; you should use updates/4.1 repository instead. However, it is the best source of packages for those who want to test beta-versions of the upcoming distros, as well as for those who'd like to create a distro of their own.<br />
<br />
Currently, there's the only distribution released on this branch.<br />
<br />
== ALT Linux 4.1 Desktop ==<br />
General purpose distribution for desktops, laptops, and netbooks. x86, x86-64.<br />
<br />
Downloads: [ftp://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/ 4.1.0]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1&diff=137ALT Linux 4.12008-10-07T18:06:49Z<p>AlexeyRusakov: No more link to betas, it has gone to /ALT_Linux</p>
<hr />
<div>[[ru:Releases/41]]<br />
<br />
All ALT Linux 4.1 distributions are based on [[Stable branches|branch]]/4.1. As for the moment of 4.1 Desktop release, packages in branch/4.1 are updated rather actively, so the branch itself is not intended to be used to update your installation or to install additional packages, you should use updates/4.1 repository instead. However, it is the best source of packages for those who want to test beta-versions of the upcoming distros, as well as for those who'd like to create a distro of their own.<br />
<br />
Currently, there's the only distribution released on this branch.<br />
<br />
== ALT Linux 4.1 Desktop ==<br />
General purpose distribution for desktops, laptops, and netbooks. x86, x86-64.<br />
<br />
Downloads: [ftp://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/ 4.1.0]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT&diff=136ALT2008-10-07T18:06:26Z<p>AlexeyRusakov: Added a link to betas, with a frightening disclaimer</p>
<hr />
<div>== Current distributions ==<br />
<br />
* [[ALT Linux 4.0]]<br />
* [[ALT Linux 4.1]]<br />
<br />
== Development snapshots ==<br />
There are some development/preview snapshots of new and old ALT Linux distros, available here:<br />
* [ftp://beta.altlinux.com/ beta versions FTP]<br />
Only use them if you know what you're doing; the snapshots may contain critical bugs of any kind, they can wipe off your system, steal your hardware, take control of and abuse you, your friends and your dear ones, and so on.</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1&diff=135ALT Linux 4.12008-10-07T18:02:16Z<p>AlexeyRusakov: /* ALT Linux 4.1 Desktop */ Fixed a typo</p>
<hr />
<div>[[ru:Releases/41]]<br />
<br />
All ALT Linux 4.1 distributions are based on [[Stable branches|branch]]/4.1. As for the moment of 4.1 Desktop release, packages in branch/4.1 are updated rather actively, so the branch itself is not intended to be used to update your installation or to install additional packages, you should use updates/4.1 repository instead. However, it is the best source of packages for those who want to test beta-versions of the upcoming distros, as well as for those who'd like to create a distro of their own.<br />
<br />
Currently, there's the only distribution released on this branch.<br />
<br />
== ALT Linux 4.1 Desktop ==<br />
General purpose distribution for desktops, laptops, and netbooks. x86, x86-64.<br />
<br />
Downloads: [ftp://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/ 4.1.0]<br />
<br />
== Beta versions ==<br />
There are some development/preview snapshots of new and old ALT Linux distros, available here:<br />
* [ftp://beta.altlinux.com/ beta versions FTP]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1&diff=134ALT Linux 4.12008-10-07T18:00:25Z<p>AlexeyRusakov: Major update due to the release of ALT Linux 4.1 Desktop</p>
<hr />
<div>[[ru:Releases/41]]<br />
<br />
All ALT Linux 4.1 distributions are based on [[Stable branches|branch]]/4.1. As for the moment of 4.1 Desktop release, packages in branch/4.1 are updated rather actively, so the branch itself is not intended to be used to update your installation or to install additional packages, you should use updates/4.1 repository instead. However, it is the best source of packages for those who want to test beta-versions of the upcoming distros, as well as for those who'd like to create a distro of their own.<br />
<br />
Currently, there's the only distribution released on this branch.<br />
<br />
== ALT Linux 4.1 Desktop ==<br />
General purpose distribution for desktops, laptops, and netbooks. x86, x86-64.<br />
Downloads: [ftp://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/ 4.1.0]<br />
<br />
== Beta versions ==<br />
There are some development/preview snapshots of new and old ALT Linux distros, available here:<br />
* [ftp://beta.altlinux.com/ beta versions FTP]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.0&diff=133ALT Linux 4.02008-10-07T17:49:48Z<p>AlexeyRusakov: Fixed typos</p>
<hr />
<div>[[ru:Releases/40]]<br />
<br />
ALT Linux distributions are developed and released by [[ALT Linux Ltd]] and several partners.<br />
<br />
There are several ALT Linux 4.0 distributions tailored for different needs.<br />
<br />
All ALT Linux 4.0 distributions are based on [[Stable branches|branch]]/4.0 (see below for details). Packages in branch/4.0 are updated in controlled and conservative manner, it can be used to update distribution or to install additional packages not present on installation medium.<br />
<br />
Maintenance 4.0.x releases are regularly released, incorporating newer snapshots of branch/4.0.<br />
<br />
== ALT Linux 4.0 Server ==<br />
<br />
Server GNU/Linux distribution with good virtualization support (OpenVZ). x86, x86-64.<br />
<br />
Downloads: [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/Server/current/ here].<br />
<br />
== ALT Linux 4.0 Desktop ==<br />
<br />
Desktop GNU/Linux distribution. x86.<br />
<br />
Downloads: [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/Desktop/ here] (note, 4.0.3 is not a regular release, but a kind of beta - do not use it in production).<br />
<br />
== ALT Linux 4.0 Lite ==<br />
<br />
Desktop GNU/Linux distribution for older and less powerful computers. x86.<br />
<br />
Downloads: [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/Desktop/ here] (see "Desktop" about 4.0.3).<br />
<br />
== ALT Linux 4.0 OfficeServer ==<br />
<br />
Appliance-like server GNU/Linux distribution with Web-interface for configuration. x86, x86-64.<br />
<br />
Downloads: [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/OfficeServer/current/ here].<br />
<br />
== ALT Linux 4.0 Terminal ==<br />
<br />
Terminal server solution. x86. Developed by [http://www.magic.kiev.ua/ru/ Media Magic] company.<br />
<br />
Downloads: [ftp://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/Terminal/ here].<br />
<br />
== branch/4.0 ==<br />
<br />
branch/4.0 consists of APT repository.<br />
<br />
APT source for <tt>sources.list</tt> (note that two repositories is required):<br />
# x86<br />
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/branch/ i586 classic<br />
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/branch/ noarch classic<br />
# x86-64<br />
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/branch/ x86_65 classic<br />
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/4.0/branch/ noarch classic</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT&diff=132ALT2008-10-07T17:45:18Z<p>AlexeyRusakov: ALT Linux 4.1 Desktop released</p>
<hr />
<div>== Current distributions ==<br />
<br />
* [[ALT Linux 4.0]]<br />
* [[ALT Linux 4.1]]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Desktop&diff=131ALT Linux 4.1 Desktop2008-10-07T17:43:19Z<p>AlexeyRusakov: /* Changes since ALT Linux 4.0 Desktop Personal */ Minor fixes</p>
<hr />
<div>[[Category:Distributions]]<br />
<br />
== About ==<br />
<br />
ALT Linux 4.1 Desktop is a general purpose GNU/Linux distribution intended for use on desktop stations, laptops and netbooks.<br />
<br />
== Release Date ==<br />
<br />
October 07, 2008<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Download ==<br />
<br />
* [ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/iso/ ftp.altlinux.ru]<br />
* [ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/4.1/Desktop/4.1.0/iso ftp.heanet.ie]<br />
* [ftp://ftp.linux.kiev.ua/pub/Linux/ALT/4.1/Desktop/4.1.0/iso ftp.linux.kiev.ua]<br />
* [ftp://mirror.yandex.ru/altlinux/4.1/Desktop/4.1.0/iso mirror.yandex.ru]<br />
* [http://torrent.altlinux.ru/ Torrents]<br />
<br />
=== ISO Images Description ===<br />
<br />
<pre><br />
9398e957702d2a88f6b69db814d874d2 altlinux-4.1.0-desktop-i586-install-cd.iso Install CD (i586), 671 Mb<br />
2f11f39645fe5b0ad6cecc3bc253e078 altlinux-4.1.0-desktop-i586-install-dvd5.iso Install DVD (i586), Live CD included, 4,3 Gb<br />
2557f74141a6e218d467948646b1dc86 altlinux-4.1.0-desktop-i586-live-cd.iso Live CD (i586), 692 Mb<br />
d14c5a9135dbe9b019d4862b15a23b95 altlinux-4.1.0-desktop-i586-rescue-cd.iso Rescue disk (i586), 75 Mb<br />
e1310e9a6653c9e990d7c82ee650c103 altlinux-4.1.0-desktop-x86_64-install-cd.iso Install CD (x86_64), 694 Mb<br />
84d87cd9f1e7b8f52e9b3b4babf3db7b altlinux-4.1.0-desktop-x86_64-install-dvd5.iso Install DVD (x86_64), включает Live CD, 4,1 Gb<br />
e97e522baac5b2342627880b6117d00d altlinux-4.1.0-desktop-x86_64-live-cd.iso Live CD (x86_64), 707 Mb<br />
59a3138ab5ae321ba99785405b47c434 altlinux-4.1.0-desktop-x86_64-rescue-cd.iso Rescue disk (x86_64), 77 Mb<br />
c8a4a0e0d0451468b439f41e902d2f15 altlinux-4.1.0-desktop-i586-install-flash.img.gz Live Flash, 1,8 Gb<br />
</pre><br />
<br />
=== Notes ===<br />
<br />
* [http://www.altlinux.org/Releases/Download/Update Recommendations on ISO image update] (in Russian)<br />
* [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/docs/ User Manual] (in Russian)<br />
<br />
== Changes since ALT Linux 4.0 Desktop Personal ==<br />
<br />
* Based on the new stable 4.1 repository branch<br />
* 2.6.25 kernel with wider hardware support<br />
* KDE 3.5.10 (GNOME 2.22 and XFCE 4.4.2 can be installed manually from DVD)<br />
* Firefox 3<br />
* NetworkManager allows to manage any network interface without root privileges<br />
* New look of the System management center<br />
* Updated Bootloader and Display management modules<br />
* New management modules:<br />
** Create a bootable USB storage<br />
** A system proxy-server setup (apt also uses it)<br />
** An easy to use chooser of an updates repository<br />
** Package management<br />
* A flash media image so you can install from your USB flash drive (on EeePC, too)<br />
* Cyrillic filenames inside Zip archives are not corrupted on Windows, and vice versa.<br />
* Kaffeine is the default player of audio- and videofiles<br />
* KView is the default image viewer<br />
* Updated and revised menu<br />
* Applications with duplicate functionality removed:<br />
** Using Evince instead of KGhostView, KPDF, and KDVI<br />
** KuickShow and KMail are not installed by default; they are present on the media and can be installed manually<br />
* New applications:<br />
** Qtemu (Qemu with a GUI)<br />
** VirtualBox<br />
<br />
== Migration ==<br />
<br />
You can change repository from 4.0 to [[Branches/41|4.1]] or add ALT Linux 4.1 Desktop CD/DVD as APT source (it's better to remove any 4.0-related repos), and run<br />
<pre>apt-get update<br />
apt-get dist-upgrade</pre><br />
Update should be successful and should not break anything. Old settings should be actual.<br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:4.1-Boot.png|Boot Menu<br />
Image:4.1-Bootsplash.png|System loading<br />
Image:4.1-Installer.png|Installation<br />
Image:4.1-Splash.png|KDE Splash Screen<br />
Image:4.1-Desktop.png|Default desktop<br />
Image:4.1-Alterator.png|System Management Center<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Desktop&diff=130ALT Linux 4.1 Desktop2008-10-07T17:41:02Z<p>AlexeyRusakov: /* Changes after ALT Linux 4.0 Desktop Personal */ Made the header more English</p>
<hr />
<div>[[Category:Distributions]]<br />
<br />
== About ==<br />
<br />
ALT Linux 4.1 Desktop is a general purpose GNU/Linux distribution intended for use on desktop stations, laptops and netbooks.<br />
<br />
== Release Date ==<br />
<br />
October 07, 2008<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Download ==<br />
<br />
* [ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/iso/ ftp.altlinux.ru]<br />
* [ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/4.1/Desktop/4.1.0/iso ftp.heanet.ie]<br />
* [ftp://ftp.linux.kiev.ua/pub/Linux/ALT/4.1/Desktop/4.1.0/iso ftp.linux.kiev.ua]<br />
* [ftp://mirror.yandex.ru/altlinux/4.1/Desktop/4.1.0/iso mirror.yandex.ru]<br />
* [http://torrent.altlinux.ru/ Torrents]<br />
<br />
=== ISO Images Description ===<br />
<br />
<pre><br />
9398e957702d2a88f6b69db814d874d2 altlinux-4.1.0-desktop-i586-install-cd.iso Install CD (i586), 671 Mb<br />
2f11f39645fe5b0ad6cecc3bc253e078 altlinux-4.1.0-desktop-i586-install-dvd5.iso Install DVD (i586), Live CD included, 4,3 Gb<br />
2557f74141a6e218d467948646b1dc86 altlinux-4.1.0-desktop-i586-live-cd.iso Live CD (i586), 692 Mb<br />
d14c5a9135dbe9b019d4862b15a23b95 altlinux-4.1.0-desktop-i586-rescue-cd.iso Rescue disk (i586), 75 Mb<br />
e1310e9a6653c9e990d7c82ee650c103 altlinux-4.1.0-desktop-x86_64-install-cd.iso Install CD (x86_64), 694 Mb<br />
84d87cd9f1e7b8f52e9b3b4babf3db7b altlinux-4.1.0-desktop-x86_64-install-dvd5.iso Install DVD (x86_64), включает Live CD, 4,1 Gb<br />
e97e522baac5b2342627880b6117d00d altlinux-4.1.0-desktop-x86_64-live-cd.iso Live CD (x86_64), 707 Mb<br />
59a3138ab5ae321ba99785405b47c434 altlinux-4.1.0-desktop-x86_64-rescue-cd.iso Rescue disk (x86_64), 77 Mb<br />
c8a4a0e0d0451468b439f41e902d2f15 altlinux-4.1.0-desktop-i586-install-flash.img.gz Live Flash, 1,8 Gb<br />
</pre><br />
<br />
=== Notes ===<br />
<br />
* [http://www.altlinux.org/Releases/Download/Update Recommendations on ISO image update] (in Russian)<br />
* [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/docs/ User Manual] (in Russian)<br />
<br />
== Changes since ALT Linux 4.0 Desktop Personal ==<br />
<br />
* Based on the new stable 4.1 repository branch<br />
* 2.6.25 kernel with wider hardware support<br />
* KDE 3.5.10 (GNOME 2.22 and XFCE 4.4.2 can be installed manually from DVD)<br />
* Firefox 3<br />
* NetworkManager allows to manage any network interface without root privileges<br />
* A new look of the System management center<br />
* Updated Bootloader and Display management modules<br />
* New management modules:<br />
** Create a bootable USB storage<br />
** A system proxy-server setup (apt also uses it)<br />
** An easy to use chooser of an updates repository<br />
** Package management<br />
* A flash media image so you can install from your USB flash drive (you can install to EeePC, too)<br />
* Cyrillic filenames inside Zip archives are not corrupted on Windows, and vice versa.<br />
* Kaffeine is used as default player of audio- and videofiles<br />
* KView is default image viewer<br />
* Updated and revised menu<br />
* Many programs with duplicate functionality removed:<br />
** Using Evince instead of KGhostView, KPDF, and KDVI<br />
** KuickShow and KMail are not installed by default; they are present on the media and can be installed manually<br />
* New applications:<br />
** Qtemu (Qemu with a GUI)<br />
** VirtualBox<br />
<br />
== Migration ==<br />
<br />
You can change repository from 4.0 to [[Branches/41|4.1]] or add ALT Linux 4.1 Desktop CD/DVD as APT source (it's better to remove any 4.0-related repos), and run<br />
<pre>apt-get update<br />
apt-get dist-upgrade</pre><br />
Update should be successful and should not break anything. Old settings should be actual.<br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:4.1-Boot.png|Boot Menu<br />
Image:4.1-Bootsplash.png|System loading<br />
Image:4.1-Installer.png|Installation<br />
Image:4.1-Splash.png|KDE Splash Screen<br />
Image:4.1-Desktop.png|Default desktop<br />
Image:4.1-Alterator.png|System Management Center<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Desktop&diff=129ALT Linux 4.1 Desktop2008-10-07T17:40:25Z<p>AlexeyRusakov: /* Notes */ Fixed a typo</p>
<hr />
<div>[[Category:Distributions]]<br />
<br />
== About ==<br />
<br />
ALT Linux 4.1 Desktop is a general purpose GNU/Linux distribution intended for use on desktop stations, laptops and netbooks.<br />
<br />
== Release Date ==<br />
<br />
October 07, 2008<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Download ==<br />
<br />
* [ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/iso/ ftp.altlinux.ru]<br />
* [ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/4.1/Desktop/4.1.0/iso ftp.heanet.ie]<br />
* [ftp://ftp.linux.kiev.ua/pub/Linux/ALT/4.1/Desktop/4.1.0/iso ftp.linux.kiev.ua]<br />
* [ftp://mirror.yandex.ru/altlinux/4.1/Desktop/4.1.0/iso mirror.yandex.ru]<br />
* [http://torrent.altlinux.ru/ Torrents]<br />
<br />
=== ISO Images Description ===<br />
<br />
<pre><br />
9398e957702d2a88f6b69db814d874d2 altlinux-4.1.0-desktop-i586-install-cd.iso Install CD (i586), 671 Mb<br />
2f11f39645fe5b0ad6cecc3bc253e078 altlinux-4.1.0-desktop-i586-install-dvd5.iso Install DVD (i586), Live CD included, 4,3 Gb<br />
2557f74141a6e218d467948646b1dc86 altlinux-4.1.0-desktop-i586-live-cd.iso Live CD (i586), 692 Mb<br />
d14c5a9135dbe9b019d4862b15a23b95 altlinux-4.1.0-desktop-i586-rescue-cd.iso Rescue disk (i586), 75 Mb<br />
e1310e9a6653c9e990d7c82ee650c103 altlinux-4.1.0-desktop-x86_64-install-cd.iso Install CD (x86_64), 694 Mb<br />
84d87cd9f1e7b8f52e9b3b4babf3db7b altlinux-4.1.0-desktop-x86_64-install-dvd5.iso Install DVD (x86_64), включает Live CD, 4,1 Gb<br />
e97e522baac5b2342627880b6117d00d altlinux-4.1.0-desktop-x86_64-live-cd.iso Live CD (x86_64), 707 Mb<br />
59a3138ab5ae321ba99785405b47c434 altlinux-4.1.0-desktop-x86_64-rescue-cd.iso Rescue disk (x86_64), 77 Mb<br />
c8a4a0e0d0451468b439f41e902d2f15 altlinux-4.1.0-desktop-i586-install-flash.img.gz Live Flash, 1,8 Gb<br />
</pre><br />
<br />
=== Notes ===<br />
<br />
* [http://www.altlinux.org/Releases/Download/Update Recommendations on ISO image update] (in Russian)<br />
* [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/docs/ User Manual] (in Russian)<br />
<br />
== Changes after ALT Linux 4.0 Desktop Personal ==<br />
<br />
* Based on the new stable 4.1 repository branch<br />
* 2.6.25 kernel with wider hardware support<br />
* KDE 3.5.10 (GNOME 2.22 and XFCE 4.4.2 can be installed manually from DVD)<br />
* Firefox 3<br />
* NetworkManager allows to manage any network interface without root privileges<br />
* A new look of the System management center<br />
* Updated Bootloader and Display management modules<br />
* New management modules:<br />
** Create a bootable USB storage<br />
** A system proxy-server setup (apt also uses it)<br />
** An easy to use chooser of an updates repository<br />
** Package management<br />
* A flash media image so you can install from your USB flash drive (you can install to EeePC, too)<br />
* Cyrillic filenames inside Zip archives are not corrupted on Windows, and vice versa.<br />
* Kaffeine is used as default player of audio- and videofiles<br />
* KView is default image viewer<br />
* Updated and revised menu<br />
* Many programs with duplicate functionality removed:<br />
** Using Evince instead of KGhostView, KPDF, and KDVI<br />
** KuickShow and KMail are not installed by default; they are present on the media and can be installed manually<br />
* New applications:<br />
** Qtemu (Qemu with a GUI)<br />
** VirtualBox<br />
<br />
== Migration ==<br />
<br />
You can change repository from 4.0 to [[Branches/41|4.1]] or add ALT Linux 4.1 Desktop CD/DVD as APT source (it's better to remove any 4.0-related repos), and run<br />
<pre>apt-get update<br />
apt-get dist-upgrade</pre><br />
Update should be successful and should not break anything. Old settings should be actual.<br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:4.1-Boot.png|Boot Menu<br />
Image:4.1-Bootsplash.png|System loading<br />
Image:4.1-Installer.png|Installation<br />
Image:4.1-Splash.png|KDE Splash Screen<br />
Image:4.1-Desktop.png|Default desktop<br />
Image:4.1-Alterator.png|System Management Center<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=ALT_Linux_4.1_Desktop&diff=128ALT Linux 4.1 Desktop2008-10-07T17:39:52Z<p>AlexeyRusakov: /* About */ Removed excess stuff</p>
<hr />
<div>[[Category:Distributions]]<br />
<br />
== About ==<br />
<br />
ALT Linux 4.1 Desktop is a general purpose GNU/Linux distribution intended for use on desktop stations, laptops and netbooks.<br />
<br />
== Release Date ==<br />
<br />
October 07, 2008<br />
<br />
== Repository ==<br />
<br />
[[Branches/41|4.1/branch]]<br />
<br />
== Download ==<br />
<br />
* [ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/iso/ ftp.altlinux.ru]<br />
* [ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/4.1/Desktop/4.1.0/iso ftp.heanet.ie]<br />
* [ftp://ftp.linux.kiev.ua/pub/Linux/ALT/4.1/Desktop/4.1.0/iso ftp.linux.kiev.ua]<br />
* [ftp://mirror.yandex.ru/altlinux/4.1/Desktop/4.1.0/iso mirror.yandex.ru]<br />
* [http://torrent.altlinux.ru/ Torrents]<br />
<br />
=== ISO Images Description ===<br />
<br />
<pre><br />
9398e957702d2a88f6b69db814d874d2 altlinux-4.1.0-desktop-i586-install-cd.iso Install CD (i586), 671 Mb<br />
2f11f39645fe5b0ad6cecc3bc253e078 altlinux-4.1.0-desktop-i586-install-dvd5.iso Install DVD (i586), Live CD included, 4,3 Gb<br />
2557f74141a6e218d467948646b1dc86 altlinux-4.1.0-desktop-i586-live-cd.iso Live CD (i586), 692 Mb<br />
d14c5a9135dbe9b019d4862b15a23b95 altlinux-4.1.0-desktop-i586-rescue-cd.iso Rescue disk (i586), 75 Mb<br />
e1310e9a6653c9e990d7c82ee650c103 altlinux-4.1.0-desktop-x86_64-install-cd.iso Install CD (x86_64), 694 Mb<br />
84d87cd9f1e7b8f52e9b3b4babf3db7b altlinux-4.1.0-desktop-x86_64-install-dvd5.iso Install DVD (x86_64), включает Live CD, 4,1 Gb<br />
e97e522baac5b2342627880b6117d00d altlinux-4.1.0-desktop-x86_64-live-cd.iso Live CD (x86_64), 707 Mb<br />
59a3138ab5ae321ba99785405b47c434 altlinux-4.1.0-desktop-x86_64-rescue-cd.iso Rescue disk (x86_64), 77 Mb<br />
c8a4a0e0d0451468b439f41e902d2f15 altlinux-4.1.0-desktop-i586-install-flash.img.gz Live Flash, 1,8 Gb<br />
</pre><br />
<br />
=== Notes ===<br />
<br />
* [http://www.altlinux.org/Releases/Download/Update Recomendations on ISO image update] (in Russian)<br />
* [http://ftp.altlinux.org/pub/distributions/ALTLinux/4.1/Desktop/4.1.0/docs/ User Manual] (in Russian)<br />
<br />
== Changes after ALT Linux 4.0 Desktop Personal ==<br />
<br />
* Based on the new stable 4.1 repository branch<br />
* 2.6.25 kernel with wider hardware support<br />
* KDE 3.5.10 (GNOME 2.22 and XFCE 4.4.2 can be installed manually from DVD)<br />
* Firefox 3<br />
* NetworkManager allows to manage any network interface without root privileges<br />
* A new look of the System management center<br />
* Updated Bootloader and Display management modules<br />
* New management modules:<br />
** Create a bootable USB storage<br />
** A system proxy-server setup (apt also uses it)<br />
** An easy to use chooser of an updates repository<br />
** Package management<br />
* A flash media image so you can install from your USB flash drive (you can install to EeePC, too)<br />
* Cyrillic filenames inside Zip archives are not corrupted on Windows, and vice versa.<br />
* Kaffeine is used as default player of audio- and videofiles<br />
* KView is default image viewer<br />
* Updated and revised menu<br />
* Many programs with duplicate functionality removed:<br />
** Using Evince instead of KGhostView, KPDF, and KDVI<br />
** KuickShow and KMail are not installed by default; they are present on the media and can be installed manually<br />
* New applications:<br />
** Qtemu (Qemu with a GUI)<br />
** VirtualBox<br />
<br />
== Migration ==<br />
<br />
You can change repository from 4.0 to [[Branches/41|4.1]] or add ALT Linux 4.1 Desktop CD/DVD as APT source (it's better to remove any 4.0-related repos), and run<br />
<pre>apt-get update<br />
apt-get dist-upgrade</pre><br />
Update should be successful and should not break anything. Old settings should be actual.<br />
<br />
== Screenshots ==<br />
<br />
<gallery perrow="3"><br />
Image:4.1-Boot.png|Boot Menu<br />
Image:4.1-Bootsplash.png|System loading<br />
Image:4.1-Installer.png|Installation<br />
Image:4.1-Splash.png|KDE Splash Screen<br />
Image:4.1-Desktop.png|Default desktop<br />
Image:4.1-Alterator.png|System Management Center<br />
</gallery></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=101Git.alt reference2008-09-04T21:44:56Z<p>AlexeyRusakov: /* Git.alt web interface */ Another minor rephrasing</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
==== task, build ====<br />
<br />
Not implemented yet.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt>&nbsp;&mdash; this file contains all repos from <tt>/people/$USERNAME/packages/</tt> directories along with unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=100Git.alt reference2008-09-04T21:43:24Z<p>AlexeyRusakov: /* Git.alt web interface */ replaced 'that is' with 'i.e.'; minor rephrasing</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
==== task, build ====<br />
<br />
Not implemented yet.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (i.e. <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive/</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt> that contains all repos from <tt>/people/$USERNAME/packages/</tt> directories as well as unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=99Git.alt reference2008-09-04T21:41:00Z<p>AlexeyRusakov: Translated a section about web interface</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
==== task, build ====<br />
<br />
Not implemented yet.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
=== Git.alt web interface ===<br />
<br />
The address is http://git.altlinux.org/<br />
<br />
The web interface allows to navigate <em>public</em> repos of all users (that is <tt>/people/$USERNAME/{packages,public}</tt> directories) and includes <tt>gitweb</tt> interface for those repos.<br />
<br />
Aside from that, the web interface displays <tt>/archive/</tt> repositories (with no <tt>gitweb</tt>, you can only clone them) and a file <tt>people-packages-list</tt> that contains all repos from <tt>/people/$USERNAME/packages/</tt> and unixtimes of their last change.<br />
<br />
<!--== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=98Git.alt reference2008-09-04T21:22:34Z<p>AlexeyRusakov: Translated the section about cloning and usage of repos</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
==== task, build ====<br />
<br />
Not implemented yet.<br />
<br />
=== Cloning and usage of repositories ===<br />
<br />
Basically, <tt>git.alt</tt> repos are git-repositories, so any command applicable to a git repo can be used with a <tt>git.alt</tt> repo.<br />
<br />
<tt>git.alt</tt> repositories can be accessed via the following URLs:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
You can find HTTP- and git-URLs of repos in the <tt>git.alt</tt> web interface.<br />
<br />
<!--=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=97Git.alt reference2008-09-04T21:10:01Z<p>AlexeyRusakov: Updated charset command description according to the corrections by ldv@ in the Russian version</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset used in files of the specified git-repository. This charset is chosen to display diffs in the notification e-mails sent by git.alt.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
==== task, build ====<br />
<br />
Not implemented yet.<br />
<br />
<!--=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=63Git.alt reference2008-08-22T14:11:41Z<p>AlexeyRusakov: Translated the articles on mv-db, rm-db and auxiliary commands</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages/</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages/</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages/</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Allows to move and rename repositories. If only a repository name is given (without path), <tt>packages/</tt> directory is used.<br />
<br />
Moving packages/test.git to public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Moving public/newname.git to packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Renaming packages/test.git to packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Removes a repository. If only a repository name is given (without path), <tt>packages/</tt> directory is used:<br />
$ ssh git.alt rm-db megatest # removes packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Auxiliary commands ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Obtain or set the charset for raw-files of the specified git-repository. This is used by the git.alt web server to set the proper charset when a user downloads the file.<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Displays the user's quota and the used space.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
These commands are used internally by <tt>git-push</tt>, <tt>git-pull</tt> and other utilities. You should not run them explicitly.<br />
<br />
==== task, build ====<br />
<br />
Not implemented yet.<br />
<br />
<!--=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=24Git.alt reference2008-08-16T08:34:52Z<p>AlexeyRusakov: /* init-db */ Minor rephrasing</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
<br />
You can also pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
<!--==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
Эти команды используются утилитами <tt>git-push</tt>, <tt>git-pull</tt> и подобными и не предназначены для вызова пользователем.<br />
<br />
==== task, build ====<br />
<br />
Пока что не функционируют.<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=23Git.alt reference2008-08-16T07:04:13Z<p>AlexeyRusakov: /* init-db */ Fixed a typo</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages</tt> directory.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
Or you can pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
<!--==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
Эти команды используются утилитами <tt>git-push</tt>, <tt>git-pull</tt> и подобными и не предназначены для вызова пользователем.<br />
<br />
==== task, build ====<br />
<br />
Пока что не функционируют.<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=22Git.alt reference2008-08-16T07:03:28Z<p>AlexeyRusakov: Translated sections about clone and init-db</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
This command clones a repository, i.e. makes a copy of a repository in the specified directory (or in <tt>packages</tt> directory, if none specified) so that you can start hacking on it.<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
You can also specify a repository name instead of just a destination directory as the second parameter:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
You can also clone a repository from outside <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
<br />
Creates a new Git repo. By default, the repo is created in <tt>packages</tt>.<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
Or you can pass a path and a name of the repo as the only parameter:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
<!--==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
Эти команды используются утилитами <tt>git-push</tt>, <tt>git-pull</tt> и подобными и не предназначены для вызова пользователем.<br />
<br />
==== task, build ====<br />
<br />
Пока что не функционируют.<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt&diff=21Git.alt2008-08-16T06:56:15Z<p>AlexeyRusakov: Moved git.alt reference from /Git.alt to /Git.alt_reference, according to changes in the Russian version of the wiki</p>
<hr />
<div>[[ru:Git.alt]]<br />
== What is <tt>git.alt</tt>? ==<br />
<br />
<tt>git.alt</tt> is a hosting for git repositories designed according to the needs of Sisyphus developers. Git.alt is integrated with [[Gear|<tt>gear</tt>]]&nbsp;&mdash; the system of packages building and storage.<br />
<br />
Services similar to Git.alt are [http://github.com/ github] and [http://gitorious.com/ gitorious]. <tt>git.alt</tt> differs from them in its advanced SSH repositories management interface, e-mail notifications of many kinds and relatively simplistic web-interface.<br />
<br />
== Documentation ==<br />
<br />
* [[Git.alt reference]]<br />
* [http://www.altlinux.org/Git Unsorted articles on Git.alt, Gear and Git (in Russian)]</div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=20Git.alt reference2008-08-16T06:51:44Z<p>AlexeyRusakov: Added a link to the page in Russian</p>
<hr />
<div>{{stub}}<br />
[[ru:Справочник_по_Git.alt]]<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
<!--==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
Эта команда позволяет "склонировать", т.е. создать в своей директории копию репозитория для начала работы над ним.<br />
<br />
Без второго аргумента — клонирует в директорию <tt>packages</tt>:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
Вторым аргументом можно указать как директорию, в которую нужно поместить клон репозитория, так и название репозитория:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
Можно также склонировать репозиторий, находящийся вне <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
Позволяет создать новый git-репозиторий. По умолчанию репозиторий создаётся в директории <tt>packages</tt>:<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
При указании пути создаёт репозиторий по указанному пути:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
Эти команды используются утилитами <tt>git-push</tt>, <tt>git-pull</tt> и подобными и не предназначены для вызова пользователем.<br />
<br />
==== task, build ====<br />
<br />
Пока что не функционируют.<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt_reference&diff=19Git.alt reference2008-08-16T06:50:12Z<p>AlexeyRusakov: Moved git.alt reference from /Git.alt to a separate page</p>
<hr />
<div>{{stub}}<br />
[[Category:Devel]]<br />
[[Category:Sisyphus]]<br />
[[Category:Reference]]<br />
== How to use ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in <tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
<!--==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
Эта команда позволяет "склонировать", т.е. создать в своей директории копию репозитория для начала работы над ним.<br />
<br />
Без второго аргумента — клонирует в директорию <tt>packages</tt>:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
Вторым аргументом можно указать как директорию, в которую нужно поместить клон репозитория, так и название репозитория:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
Можно также склонировать репозиторий, находящийся вне <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
Позволяет создать новый git-репозиторий. По умолчанию репозиторий создаётся в директории <tt>packages</tt>:<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
При указании пути создаёт репозиторий по указанному пути:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
===== git-receive-pack, git-upload-pack =====<br />
<br />
Эти команды используются утилитами <tt>git-push</tt>, <tt>git-pull</tt> и подобными и не предназначены для вызова пользователем.<br />
<br />
==== task, build ====<br />
<br />
Пока что не функционируют.<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
Работа с git-репозиториями, расположенными на <tt>git.alt</tt>, ничем не отличается от работы с другими git-репозиториями.<br />
<br />
URL-ы репозиториев на git.alt:<br />
; '''git''' (r/o)<br />
: <tt>git://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''rsync''' (r/o)<br />
: <tt>git.altlinux.org::people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
; '''http''' (r/o)<br />
: <tt><nowiki>http://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</nowiki></tt><br />
; '''ssh''' (r/w)<br />
: <tt>ssh://git.altlinux.org/people/$USER/(packages|public|private)/$PACKAGE.git</tt><br />
<br />
HTTP- и git-URL-ы репозиториев можно в любой момент узнать в web-интерфейсе <tt>git.alt</tt>.<br />
<br />
=== Web-интерфейс ===<br />
<br />
Располагается по адресу http://git.altlinux.org/<br />
<br />
Предоставляет навигацию по публичным репозиториям пользователей (директории <tt>/people/$USERNAME/{packages,public}</tt>) и <tt>gitweb</tt>-интерфейс к этим репозиториям.<br />
<br />
Кроме этого, в web-интерфейсе представлены репозитории <tt>/archive</tt> (без <tt>gitweb</tt>, только для клонирования) и файл <tt>people-packages-list</tt>, содержащий все репозитории из директорий <tt>/people/$USERNAME/packages</tt> и даты их последнего изменения (в unixtime).<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus.<br />
<br />
Репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших [[incoming]] <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, поэтому репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
На <tt>git.alt</tt> реализовано два вида почтовой подписки на события:<br />
* Пользователь подписывается на события, происходящие в репозиториях <tt>public</tt> и <tt>packages</tt>.<br />
* Пользователь подписывает кого-то на события, происходящие в '''его''' репозиториях <tt>public</tt>, <tt>packages</tt> и <tt>private</tt>.<br />
<br />
Для подписки используются репозитории из директории <tt>etc</tt>: <tt>packages.git</tt>, <tt>public.git</tt>, <tt>private.git</tt>. Схема работы с подписками напоминает работу с <tt>CVSROOT</tt> из CVS: пользователь клонирует нужный репозиторий, коммтит изменения в него и push-ит обратно на сервер, после чего изменения вступают в силу.<br />
<br />
В каждом из трёх репозиториев находится два файла: <tt>email-subscription</tt> и <tt>email-distribution</tt> (точнее, в <tt>private.git</tt> - только <tt>email-distribution</tt>). <tt>git.alt</tt> использует бранч <tt>master</tt> и не обращает внимания на остальные бранчи в этих репозиториях.<br />
<br />
=== email-subscription ===<br />
<br />
Этот файл позволяет подписаться на события в публичных репозиториях <tt>git.alt</tt>. Формат файла - последовательность строк следующего вида:<br />
$USER $PACKAGE $REFTYPE $REFNAME<br />
где<br />
* $USER - имя пользователя <tt>git.alt</tt>,<br />
* $PACKAGE - имя пакета,<br />
* $REFTYPE - вид изменения: <tt>head</tt> - новые/удалённые коммиты, <tt>tag</tt> - новые/удалённые тэги (техническая подробность: второй компонент из изменяемой ссылки <tt>refs/*/*</tt>)<br />
<!-- или release (релизы для сборки пакетов. Пока что не работает. -><br />
* $REFNAME - имя изменения: имя бранча для коммитов, имя тэга для тэгов (техническая подробность: третий и последующие компоненты из изменяемой ссылки <tt>refs/*/*</tt>).<br />
Каждое из полей может быть полным именем или вайлдкардом <tt>*</tt>. Для имён пакетов также разрешён вайлдкард в конце имени (например, <tt>docs-*</tt>).<br />
<br />
==== Примеры ====<br />
<br />
Подписка на все события во всех репозиториях:<br />
* * * *<br />
Подписка на новые/удалённые тэги в репозитории /people/ldv/packages/glibc.git:<br />
ldv glibc tag *<br />
<br />
=== email-distribution ===<br />
<br />
Этот файл позволяет подписать других пользователей <tt>git.alt</tt> на события в ваших репозиториях. Формат файла - последовтельность строк вида:<br />
$PACKAGE $REFTYPE $REFNAME $MAILTO<br />
где<br />
* $PACKAGE, $REFTYPE, $REFNAME аналогичны параметрам из файла email-subscription<br />
* $MAILTO - разделённый запятыми список имён пользователей <tt>git.alt</tt> - получателей оповещения.<br />
Вайлдкарды в первых трёх полях допустимы так же, как и в email-subscription. Вайлдкарды в $MAILTO не допускаются.<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
Пока что не функционирует.<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt&diff=18Git.alt2008-08-16T06:32:35Z<p>AlexeyRusakov: Translated sections about ls and find-package</p>
<hr />
<div>{{stub}}<br />
[[ru:Git.alt]]<br />
<br />
== What is <tt>git.alt</tt>? ==<br />
<br />
<tt>git.alt</tt> is a hosting for git repositories. Git.alt is integrated with [[Gear|<tt>gear</tt>]]&nbsp;&mdash; the system of packages building and storage.<br />
<br />
Services similar to Git.alt are [http://github.com/ github] and [http://gitorious.com/ gitorious]. <tt>git.alt</tt> differs from them in its advanced SSH repositories management interface, e-mail notifications of many kinds and relatively simplistic web-interface.<br />
<br />
== How to use? ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Similar to UNIX ls, this command lets you see contents of directories at <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
The command issued without parameters displays the contents of <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
The same directory is used as a base for relative paths:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
This command searches repositories with names matching <pattern>. The only wildcard character allowed in <pattern> is <tt>*</tt> (asterisk). It is assumed that all public <tt>gear</tt>-repos are located in <tt>packages</tt> directories of each user, so repos are only searched in these directories.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
The second column in tt>find-package</tt> output is a unixtime of the last repo update.<br />
<br />
<!--==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
Эта команда позволяет склонировать создать в своей директории копию репозитория для начала работы над ним.<br />
<br />
Без второго аргумента — клонирует в директорию <tt>packages</tt>:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
Вторым аргументом можно указать как директорию, в которую нужно поместить клон репозитория, так и название репозитория:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
Можно также склонировать репозиторий, находящийся вне <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
Позволяет создать новый git-репозиторий. По умолчанию репозиторий создаётся в директории <tt>packages</tt>:<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
При указании пути создаёт репозиторий по указанному пути:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
==== git-receive-pack, git-upload-pack, task, build ====<br />
<br />
TODO<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
=== Web-интерфейс ===<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus. Поскольку репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших <tt>incoming</tt> <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, то репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakovhttps://en.altlinux.org/index.php?title=Git.alt&diff=15Git.alt2008-08-14T09:41:11Z<p>AlexeyRusakov: /* How to use? */ Rephrasing</p>
<hr />
<div>{{stub}}<br />
[[ru:Git.alt]]<br />
<br />
== What is <tt>git.alt</tt>? ==<br />
<br />
<tt>git.alt</tt> is a hosting for git repositories. Git.alt is integrated with [[Gear|<tt>gear</tt>]]&nbsp;&mdash; the system of packages building and storage.<br />
<br />
Services similar to Git.alt are [http://github.com/ github] and [http://gitorious.com/ gitorious]. <tt>git.alt</tt> differs from them in its advanced SSH repositories management interface, e-mail notifications of many kinds and relatively simplistic web-interface.<br />
<br />
== How to use? ==<br />
<br />
<tt>git.alt</tt> provides the following kinds of access to the repositories:<br />
<br />
* SSH. Special commands are provided: repos search, cloning, creation, deletion, build invocation and control, and some auxiliary ones.<br />
* <tt>ssh:</tt>, <tt>git:</tt>, <tt>http:</tt> provide immediate access to repositories. With <tt>git:</tt> and <tt>http:</tt> you can only do read-only operations, <tt>ssh:</tt> gives read-write access.<br />
* Web interface. It is located here: http://git.altlinux.org/ and provides repos navigation and <tt>gitweb</tt> for each individual repo.<br />
<br />
SSH access to <tt>git.alt</tt> is only granted to persons who [[Join|joined]] ALT Linux Team.<br />
<br />
=== SSH access ===<br />
<br />
You can use <tt>git.alt</tt> via SSH at <tt>git.altlinux.org:222</tt>. The login name is your ALT Linux Team username with _ (underscores) instead of - (hyphens), if there are any.<br />
<br />
Here is an example of an entry in your <tt>~/.ssh/config</tt> file:<br />
Host git.alt<br />
HostName git.altlinux.org<br />
Port 222<br />
User git_USERNAME<br />
<br />
If your are behind a proxy, most ports are blocked etc., you can also access SSH with the address <tt>git.altlinux.org:443</tt>.<br />
<br />
The list of available commands is displayed, when you login to SSH without commands or with <tt>help</tt> command:<br />
<br />
$ ssh git.alt help<br />
Available commands:<br />
help<br />
git-receive-pack <directory><br />
git-upload-pack <directory><br />
charset <path to git repository> [<charset>]<br />
clone <path to git repository> [<path to directory>]<br />
find-package <pattern><br />
init-db <path to directory><br />
ls [<path to directory>]<br />
mv-db <path to source directory> <path to destination directory><br />
quota<br />
rm-db <path to git repository><br />
task {list|new|show|drop|add|run} ...<br />
build <path to gear repository> <tag name> [<binary package repository name>] [<project name>]<br />
$<br />
<br />
In all commands, the .git suffix for repositories is optional and may be omitted; but in the output of commands this suffix is always appended.<br />
<br />
<!--==== ls ====<br />
<br />
'''$ ssh git.alt ls [<directory>]'''<br />
<br />
Эта команда позволяет посмотреть содержимое различных директорий на <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt ls /people/dottedmag/public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
Без параметров — показывает содержимое <tt>/people/$USERNAME</tt>:<br />
<br />
$ ssh git.alt ls<br />
total 16<br />
drwxr-s--- 5 4096 May 30 21:27 etc<br />
drwxr-sr-x 14 4096 Aug 13 23:53 packages<br />
drwxr-s--x 2 4096 Feb 13 2007 private<br />
drwxr-sr-x 8 4096 Aug 13 23:57 public<br />
$<br />
<br />
От этой же директории отсчитываются относительные пути:<br />
<br />
$ ssh git.alt ls public<br />
total 24<br />
drwxr-sr-x 5 4096 Jun 13 10:22 bugzilla-repo-sync.git<br />
...<br />
drwxr-sr-x 5 4096 Jul 7 18:03 wackoconvert.git<br />
$<br />
<br />
==== find-package ====<br />
<br />
'''$ ssh git.alt find-package <pattern>'''<br />
<br />
Эта команда позволяет искать репозитории по переданному образцу. Единственный метасимвол, допустимый в образце — <tt>*</tt>. Репозитории ищутся в директории <tt>packages</tt> каждого пользователя, поскольку предполагается, что <tt>gear</tt>-репозитории располагаются именно там.<br />
<br />
$ ssh git.alt find-package glibc*<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc-kernheaders.git 1177084354<br />
/people/mike/packages/glibc-kvercheck.git 1160664813<br />
$ ssh git.alt find-package glibc<br />
/people/avm/packages/glibc.git 1216320095<br />
...<br />
/people/peet/packages/glibc.git 1177084600<br />
$<br />
<br />
Вторая колонка в выводе <tt>find-package</tt> — unixtime времени последнего обновления репозитория.<br />
<br />
==== clone ====<br />
<br />
'''$ ssh git.alt clone <path to git repository> [<destination directory>]'''<br />
<br />
Эта команда позволяет склонировать создать в своей директории копию репозитория для начала работы над ним.<br />
<br />
Без второго аргумента — клонирует в директорию <tt>packages</tt>:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git<br />
Initialized empty Git repository in /people/dottedmag/packages/glibc.git/<br />
$<br />
<br />
Вторым аргументом можно указать как директорию, в которую нужно поместить клон репозитория, так и название репозитория:<br />
<br />
$ ssh git.alt clone /people/ldv/glibc.git public<br />
Initialized empty Git repository in /people/dottedmag/public/glibc.git/<br />
$ ssh git.alt clone /people/ldv/glibc.git public/test<br />
Initialized empty Git repository in /people/dottedmag/public/test.git/<br />
$<br />
<br />
Можно также склонировать репозиторий, находящийся вне <tt>git.alt</tt>:<br />
<br />
$ ssh git.alt clone <nowiki>http://github.com/dottedmag/madshelf.git</nowiki> public<br />
Initialized empty Git repository in /people/dottedmag/packages/public.git/<br />
Getting alternates list for <nowiki>http://github.com/dottedmag/madshelf.git</nowiki><br />
...<br />
walk 03d18e21d85fa30fc3ac8d921eb391e2a7bb242a<br />
$<br />
<br />
==== init-db ====<br />
<br />
'''$ ssh git.alt init-db <path to directory>'''<br />
Позволяет создать новый git-репозиторий. По умолчанию репозиторий создаётся в директории <tt>packages</tt>:<br />
$ ssh git.alt init-db test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/packages/test.git<br />
При указании пути создаёт репозиторий по указанному пути:<br />
$ ssh git.alt init-db public/test<br />
Initialized empty Git repository in ./<br />
girar-init-db: /people/dottedmag/public/test.git<br />
<br />
==== mv-db ====<br />
<br />
'''$ ssh git.alt mv-db <path to source directory> <path to destination directory>'''<br />
Позволяет перемещать и переименовывать свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>.<br />
<br />
Перемещение packages/test.git в public/newname.git:<br />
$ ssh git.alt mv-db test public/newname<br />
$<br />
Перемещение public/newname.git в packages/test.git:<br />
$ ssh git.alt mv-db public/newname test<br />
$<br />
Переименовывание packages/test.git в packages/megatest.git:<br />
$ ssh git.alt mv-db test megatest<br />
$<br />
<br />
==== rm-db ====<br />
<br />
'''$ ssh git.alt rm-db <path to git repository>'''<br />
Позволяет удалять свои репозитории. При указании только имени репозитория подразумевается директория <tt>packages</tt>:<br />
$ ssh git.alt rm-db megatest # удаляет packages/megatest.git<br />
$ ssh git.alt rm-db public/test<br />
<br />
==== Вспомогательные команды ====<br />
<br />
===== charset =====<br />
<br />
'''$ ssh git.alt charset <path to git repository> [<charset>]'''<br />
<br />
Позволяет узнать или установить кодировку, отдаваемую web-сервером при отдаче raw-файлов указанного git-репозитория:<br />
<br />
$ ssh git.alt charset packages/glibc<br />
utf-8<br />
$ ssh git.alt charset packages/glibc cp1252<br />
$ ssh git.alt charset packages/glibc<br />
cp1252<br />
$<br />
<br />
===== quota =====<br />
<br />
'''$ ssh git.alt quota'''<br />
<br />
Позволяет узнать квоту и занимаемое пользователем дисковое пространство.<br />
<br />
$ ssh git.alt quota<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/simfs 16932 977M 1465M 555 100k 150k <br />
$<br />
<br />
==== git-receive-pack, git-upload-pack, task, build ====<br />
<br />
TODO<br />
<br />
=== Клонирование и работа с репозиториями ===<br />
<br />
=== Web-интерфейс ===<br />
<br />
== Структура репозиториев ==<br />
<br />
<tt>git.alt</tt> содержит два дерева репозиториев:<br />
<br />
* репозитории <tt>/people/$USERNAME</tt> для каждого зарегистрированного пользователя<br />
* репозитории <tt>/archive</tt> для пакетов Sisyphus<br />
<br />
=== /people ===<br />
<br />
Каждому зарегистрированному на git.alt разработчику предоставляется место для git-репозиториев, начинающееся с <tt>/people/$USERNAME</tt>. Структура для хранения репозиториев жёстко определена:<br />
<br />
==== /people/$USERNAME/etc ====<br />
<br />
Содержит репозитории <tt>packages.git</tt>, <tt>private.git</tt>, <tt>public.git</tt>, с помощью которых можно управлять [[#Почтовая подписка|почтовой подпиской]].<br />
<br />
==== /people/$USERNAME/packages ====<br />
<br />
Директория предназначена для хранения gear-репозиториев для пакетов Сизифа. Публично доступна.<br />
<br />
git-репозитории в этой директории будут искаться при выполнении команды <tt>find-package</tt>, и эта директория будет использоваться по умолчанию в командах <tt>init-db</tt>, <tt>clone</tt>, <tt>build</tt>.<br />
<br />
==== /people/$USERNAME/private ====<br />
<br />
Директория предназначена для хранения приватных репозиториев, о существовании и содержании которых должно быть известно только самому разработчику.<br />
<br />
Для удобства работают прямые http-ссылки на файлы репозиториев, размещённых в этой директории.<br />
<br />
==== /people/$USERNAME/public ====<br />
<br />
Директория предназначен для хранения публичных git-репозиториев, не являющихся gear-репозиториями для пакетов Сизифа.<br />
<br />
=== /archive ===<br />
<br />
В этой директории размещаются gear-репозитории пакетов Sisyphus. Поскольку репозиторий для каждого пакета создаётся с помощью утилиты <tt>gear-srpmimport</tt> на основе прошедших <tt>incoming</tt> <tt>src.rpm</tt>-пакетов, а не на основе <tt>gear</tt>-репозитория, из которых были собраны <tt>src.rpm</tt>, то репозиторий /archive следует использовать для разработки только в том случае, когда <tt>gear</tt>-репозиторий для пакета отсутствует.<br />
<br />
== Почтовая подписка ==<br />
<br />
== Сборка пакетов в Sisyphus ==<br />
<br />
== Работает от ==<br />
<br />
<tt>git.alt</tt> работает при помощи комплекса утилит <tt>girar</tt>, исходный код которых можно найти [http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=summary здесь].<br />
--></div>AlexeyRusakov