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

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

Serving Software Downloads in 956 Categories, Downloaded 50.320.894 Times

gitctl 2.0.a7

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

gitctl

Report Broken Link
Printer Friendly Version


Product Homepage
Download (47 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: git@my.gitserver.com<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 = git@myserver.com<br />branches =<br /> development<br /> staging<br /> production<br />development-branch = development<br />staging-branch = staging<br />production-branch = production<br />commit-email = commit@myserver.com<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 git@myserver.com:my.project.git<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 = git@myserver.com:my.project.git<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
USER REVIEWS
More Reviews or Write Review


GITCTL RELATED
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  
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  
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  
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.
 
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  
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  
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 2.0.0.6.1
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  
NEW DOWNLOADS IN LINUX SOFTWARE, PROGRAMMING
Linux Software  -  EasyEDA PCB Designer for Linux 2.0.0
EasyEDA, a great web based EDA(Electronics Design Automation) tool, online PCB tool, online PCB software for electronics engineers, educators, students, makers and enthusiasts. Theres no need to install any software. Just open EasyEDA in any...
34.4 MB  
Linux Software  -  wpCache® WordPress HTTP Cache 1.9
wpCache® is a high-performance, distributed object, caching system application, generic in nature, but intended for use in speeding up dynamic web applications, by decreasing database load time. wpCache® decreases dramatically the page...
3.51 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  
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  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB