Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 31.036.421 Times

gitctl 2.0.a7

Company: Kai Lautaportti
Date Added: October 23, 2013  |  Visits: 317


Report Broken Link
Printer Friendly Version

Product Homepage
Download (19 downloads)

A particular Git workflow implementation with a development/staging/production code-flow model and support for multiple repositories as part of a larger project<br /><br />gitctl's purpose is to implement a particular workflow for using Git to manage a project that consists of multiple independent subprojects. The original motivation is a zc.buildout driven system, but the implementation is not dependent on this. This is not a 100% generic tool, but the workflow is fairly common so it may be adaptable for other use cases also.<br /><br />The workflow consists of using three pre-defined branches to model the development, staging and production phases of code. We assume the use of a canonical central repository that developers use to sync their official changes. This repository is considered to be the canonical source and provides the "official" state of the projects. Developers are free to use any number of branches, tags and repositories as part of their daily work.<br /><br />The code normally flows from development to staging to production and the package provides tools to facilitate this process. Each individual Git repository is managed using any of the tools that Git provides.<br /><br />In addition, the package provides a light-weight "externals" mechanism for easily pulling in and managing the subprojects. This differs from the functionality provided by git-submodule in that both pinned-down and open dependencies can be defined. This resembles the way externals are handled in Subversion. Also, the individual Git repositories are not aware of the externals and the externals configuration is kept in a single location.<br /><br />Configuration<br /><br />The package uses two different configuration files. The gitctl.cfg file provides the higher level configuration and allows you to specify things like the canonical repository and the names of your development, staging and production branches. The gitexternals.cfg defines your project specific configuration of required sub-components.<br /><br />gitctl.cfg<br /><br />upstream<br /><br /> The name used to refer to the canonical repository server, e.g. "origin".<br /><br />upstream-url<br /><br /> The address of the canonical repository server. This address needs to point to the server in a manner that supports pushing. Currently only SSH is tested. Example:<br /><br />branches<br /><br /> List of newline separated branches that will be tracked in the local repository. When the repositories are clone for each branch listed here a local tracking branch will be automatically created.<br /><br />development-branch<br /><br /> Name of the development branch. The above branches listing will be made to implicitly contain this branch.<br /><br />staging-branch<br /><br /> Name of the staging branch. The above branches listing will be made to implicitly contain this branch.<br /><br />production-branch<br /><br /> Name of the production branch. The above branches listing will be made to implicitly contain this branch.<br /><br />commit-email<br /><br /> Email address where commit emails will be sent. Only used when creating new repositories.<br /><br />commit-email-prefix<br /><br /> The commit email prefix. Only used when creating new repositories.<br /><br />An example configuration follows:<br /><br />[gitctl]<br />upstream = origin<br />upstream-url =<br />branches =<br /> development<br /> staging<br /> production<br />development-branch = development<br />staging-branch = staging<br />production-branch = production<br />commit-email =<br />commit-email-prefix = [GIT]<br /><br />gitexternals.cfg<br /><br />The externals configuration consists of one or more sections that have the following properties. Each section name will be used to name the directory where the external will be cloned into.<br /><br />url (mandatory)<br /><br /> Full URL to the remote repository, e.g<br /><br />type (optional)<br /><br /> The type of the remote repository. Currently only git is supported.<br /><br />treeish (optional)<br /><br /> The name of a "treeish" object that is checked out by default when first cloning the remote repository. The treeish object may refer, for example, to a branch or a tag. Defaults to master.<br /><br />container (optional)<br /><br /> The name of the directory where the project will be checked out into. An additional directory will be created under this one where the project files will be located so it is safe to use the same value for multiple projects. Relative paths are considered relative to the location of the config file.<br /><br />An example configuration follows:<br /><br />[my.project]<br />url =<br />type = git<br />treeish = v1.0-dev<br />container = src<br /><br />This results in the my.project.git repository to be cloned into ./src/my.project and the v1.0-dev to be checked out into the working directory.<br /><br />gitctl script<br /><br />The gitctl script provides subcommands to implement the workflow. Each subcommand provides additional options. See gitctl [subcommand] --help for details:<br /><br />usage: gitctl [-h] [--config CONFIG] [--externals EXTERNALS]<br />{status,create,update,branch,fetch,pending} ...<br /><br />Git workflow utility for managing projects containing multiple git<br />repositories.<br /><br />positional arguments:<br /> {status,create,update,branch,fetch,pending}<br /> Commands<br /> create Initializes a new local repository and creates a<br /> matching upstream repository.<br /> update Updates the configured repositories by either pulling<br /> existing ones or cloning new ones.<br /> status Shows the status of each external project and alerts<br /> if any are out of sync with the upstream repository.<br /> branch Provides information and operates on the branches of<br /> the projects.<br /> pending Checks if there are any pending changes between two<br /> consecutive states in the workflow.<br /> fetch Updates the remote branches on all projects without<br /> merging.<br /><br />optional arguments:<br /> -h, --help show this help message and exit<br /> --config CONFIG Location of the configuration file. If omitted the<br /> following locations will be search: $PWD/gitctl.cfg,<br /> ~/.gitctl.cfg.<br /> --externals EXTERNALS<br /> Location of the externals configuration file. Defaults<br /> to $PWD/gitexternals.cfg

Requirements: No special requirements
Platforms: *nix, Linux
Keyword: Branch Branches Canonical Configuration Development Directory Dokai Externals Gitctl Gitctl 2 0 A7 Multiple Production Project Projects Remote Repositories Repository Staging Workflow
Users rating: 0/10

License: Freeware Size: 20.48 KB
Libraries  -  Template::Tools::ttree 2.19
Template::Tools::ttree module can process entire directory trees of templates. SYNOPSIS ttree [options] [files] The ttree script is used to process entire directory trees containing template files. The resulting output from processing each...
768 KB  
File Management  -  PHPDirList 1.01
PHPDirList is a simple, with low-configuration PHP directory indexer. Designed to be called automaticaly by Apache by adding an entry in .htaccess and to replace Apache's standard index pages. Aim is simple UI and simple code.
Libraries  -  WorldForge::Atlas-C++ 0.6.0
Atlas C++ is the standard implementation of the WorldForge Atlas protocol. WorldForge::Atlas-C++ is currently being developed in parallel with a stable branch, and the development code maintained separatly. The stable branch are numbered 0.4.x...
225.28 KB  
Database Tools  -  Directory Server NT Authentication Module 2.0.3
Directory Server NT Authentication Module provides a plugin allowing LDAP authentication via an NT domain account. The Directory Server NT Authentication Module project is made of two parts: The first is a simple daemon which takes an NT users...
1.7 MB  
E-Commerce  -  Web 2.0 Directory CMS 3.3.0
Seller options: - Post Classified Ads, seller selects type and level of ads, e.g. Listings, Articles, Promotions, e.t.c. - Upload Images to Ads AJAX, based upload; - Upload or attach AJAX based upload; - Upload and attach Files to Ads,...
7.08 MB  
Security Tools  -  Appnimi Web Directory Buster 1.0
Appnimi Web Directory Buster is designed to let you search for files on a remote web directory. This program guarantees the most complicated filenames can also be retrieved. Appnimi Web Directory Buster allows to search for the files on the web...
2.11 MB  
Text Chat Clients  -  Mantaray Console 2.0
Mantaray Console is a distributed, peer-to-peer, server-less communication & messaging solution for JAVA (JMS), C++ and .NET app. Offers guaranteed delivery, security and transactions. It supports TCP, SSL & HTTP protocols. Basic Installation...
2.1 MB  
Network & Internet  -  mod_xml 0.11
mod_xml is an XML applications development environment for Apache 2.0. mod_xmls primary purpose is to provide a powerful, full-featured opensource platform for Webservices and XML applications. Written in C (and possibly C++, depending on the...
30.72 KB  
Network & Internet  -  Swiftweasel
Swiftweasel project is an optimized build of the Mozilla Firefox web browser for Linux. With builds for both AMD and Intel processors. Swiftweasel is 100% compatible with all Firefox themes, plugins, and extensions. The builds will also fall...
Libraries  -  DPML SDK 2.0.2
DPML SDK is a management platform for Java-based component development, resource management, and deployment. DPML SDK is composed of the Transit resource management layer, the Depot multi-project build system, the Metro component management...
5.7 MB  
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Linux Software  -  SLAX 6.0+
Slax is a modern, portable, small and fast Linux operating system with a modular approach and outstanding design. Despite its small size, Slax provides a wide collection of pre-installed software for daily use, including a well organized graphical...
190 KB  
Linux Software  -  GTK+ 2.5
GTK+, which stands for the GIMP Toolkit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach. Language bindings...
60 MB  
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB