Archive for the ‘GIT’ Category

Git Queues 0.10

Friday, November 17th, 2006

Git Queues (gq) is a series of bash scripts which add a Mercurial queues-like functionality and interface to git.

14 Nov 2006: Git Queues 0.10: The scripts are rather incomplete at the moment, but I’m hoping they’ll get to being very usable very soon.

(via LWN.net)

Cogito-0.18.1

Friday, November 17th, 2006

14 Nov 2006: Cogito 0.18.1: few minor new features and random bugfixes to the cogito-0.18 version. Nothing groundshattering.

(via LWN.net)

Git 1.4.4 et al released

Friday, November 17th, 2006

Several Git releases happened in recent weeks. I am catching up with the news.

Read more at LWN.net:

  • 14 Nov 2006: Git 1.4.4: Quite a lot of changes during the last month;
  • 11 Nov 2006: Git 1.4.3.5: [...]in the meantime here is primarily to fix git-svn correctness issues;
  • 05 Nov 2006: Git 1.4.3.4: three larger fixes, and many minor fixes and documentation updates;
  • 20 Oct 2006: Git 1.4.3.1: primarily to work around changes in the recent GNU diff output format. Also it contains irritation fix for “git diff” which now paginates its output by default;
  • 18 Oct 2006: Git 1.4.3: many user-visible changes;

qgit 1.5.3

Wednesday, November 15th, 2006

qgit is a graphical git repositories viewer built on Qt libraries.

11 Nov 2006: qgit 1.5.3: This is mostly a bug fix release. Several issues has been fixed, also some crash bugs, so an update is
strongly suggested. To note is the new possibility to set the font used by patch and file content viewers.

(via LWN.net)

Keith Packard: “Repository Formats Matter”

Tuesday, November 14th, 2006

Keith Packard, a well-known X.org hacker, describes his reasons for choosing Git as a version control system for X.org.

X.org uses mostly centralized development style, and Git lets you continue working that way:

[...]it all depends on the conventions used within a project and individual developer style.

At X.org, we migrated from CVS to Git and yet have retained our largely centralized development model. There are few people publishing alternate trees, and we grant direct repository access to the same set of developers who used to have CVS access.

According to Keith, Git also adds several useful features, thanks to its completely distributed origin, and to the format of its repository:

  • Offline repository access. You can have your private repository on e.g. your laptop, and do some development work in offline mode. You commit as often as needed, saving your entire history in arbitrary level of details. When you are back online, you can push your private repository to the public repository, and all your changes almost smoothly go to there, with entire history preserved.
  • Private branches. Some developers could have really secret development efforts based on some public codebase (like drivers for the hardware that is not yet released). Git makes this supremely easy by allowing us to keep the ultra-secret new hardware changes in a private repository while still tracking the public repository. When we’re allowed to release the source code for the new hardware, we simply merge the private branch to the upstream master and push that to the public repository. All of the development history for the new hardware then becomes a part of the public source repository.
  • Distributed backups. With Git, when you clone the public repository, you get it in its entirety. Thus, every developer could have a backup copy of repository, immediately available in case something happens to central server. Also, because of the cryptographic protection of repository objects, you can be sure that backup repository was not altered in any way — the checksums just won’t match.

One interesting piece of information is repository size for large projects. It turns out that Git has very low overhead: The Mozilla CVS repository was 2.7GB, imported to Subversion it grew to 8.2GB. Under Git, it shrunk to 450MB. Given that a Mozilla checkout is around 350MB, it’s fairly nice to have the whole project history (from 1998) in only slightly more space. (Similar numbers are reported in Tracking CVS repository with Git).

Read more at: “Repository Formats Matter” (title is a bit misleading) and “Tyrannical SCM selection”.

Stacked GIT 0.11

Wednesday, October 25th, 2006

From: “Catalin Marinas” <catalin.marinas@gmail.com>
Date: Sat, 21 Oct 2006 16:08:31 +0100

Stacked GIT 0.11 release is available from http://www.procode.org/stgit/.

StGIT is a Python application providing similar functionality to Quilt
(i.e. pushing/popping patches to/from a stack) on top of GIT. These
operations are performed using GIT commands and the patches are stored
as GIT commit objects, allowing easy merging of the StGIT patches into
other repositories using standard GIT functionality.

Read more at LWN.net.

GIT 1.4.3, GIT 1.4.3.1 Released

Wednesday, October 25th, 2006

From: Junio C Hamano <junkio@cox.net>
Date: Wed, 18 Oct 2006 16:53:22 -0700

The latest feature release GIT 1.4.3 is available at the usual
places:

http://www.kernel.org/pub/software/scm/git/

User visible changes, other than bugfixes, since v1.4.2.4 are:

- upload-tar is deprecated but not removed; we now have
upload-archive –format=tar and –format=zip instead.

- ftp:// protocol is supported the same way as http:// and
https://

- git-diff paginates its output to the tty by default. If this
irritates you, using LESS=RF might help.

- git-cherry-pick does not leave often useless “cherry-picked
from” message.

- git-merge-recursive was replaced by a rewritten implemention
in C. The original Python implementation is available as
“recursive-old” strategy for now, but hopefully we can remove
it in the next cycle.

- git-daemon can do name based virtual hosting.

- git-daemon can serve tar and zip snapshots.

- many gitweb tweaks and cleanups.

- git-apply –reverse, –reject.

- git-diff –color highlights whitespace errors.

- git-diff –stat can be taught to use non-default widths.

- git-status can use colors.

- many more commands are built-in.

and two days later:

The latest maintenance release GIT 1.4.3.1 is available at the
usual places:

http://www.kernel.org/pub/software/scm/git/

This is primarily to work around changes in the recent GNU diff output
format. Also it contains irritation fix for “git diff” which now
paginates its output by default.

Read more at LWN.net (update).

Tracking CVS repository with Git

Saturday, October 7th, 2006

Christian Neukirchen describes a useful procedure for how to set up tracking of foreign CVS repository using Git, cvsup and cvsps 2.1. He uses the Ruby CVS repository as an example. The resulting GIT repository takes 29 megabytes and contains entire Ruby development history for eight years.

Read more at Tracking the Ruby CVS with Git.

P.S.: I had to install newer cvsps, and to edit the CVSROOT/config file, removing LockDir config option. Give git-cvsimport a -v flag to see what it is doing.

Cogito-0.18

Wednesday, October 4th, 2006

From: “Petr Baudis” <pasky+suse.cz>

Date: Fri, 29 Sep 2006 14:06:39 +0200

Hello,

I just released cogito-0.18 - new feature release of the Cogito
user-friendly Git user interface. The biggest highlights are
super-duper cg-log, tagging interface and cg-patch -m. Contrary to my
plan, this unfortunately does NOT contain three big things yet that are
missing but will be in cogito-0.19 (which should be already quite near
the ever-approaching version 1.0):

  • - Rigorous three-way merging of uncommitted local changes
    instead of stashing local changes in patches
    (stashing produces harder-to-resolve conflicts and can
    in some extreme circumstances lead to loss or almost-loss
    of your local changes which is highly evil; this is my
    priority now; if you want to be absolutely safe, do not
    update/merge/switch your tree while having uncommitted
    changes in it)

  • - Support for cg-clone -a (clone all remote branches)
  • - Support for auto-pushing tags

So, now for things that ARE part of 0.18: :-)

First, a simple README update is the only difference from 0.18rc2.

* INCOMPATIBLE: $COGITO_COLORS is renamed to $CG_COLORS
* INCOMPATIBLE: cg-log now by default hides merges, -M behaviour is reversed
* All kinds of very stale command aliases that were deprecated for eons were removed
* .git/author is deprecated (use .git/config to set it up)
* We now officially depend on 1.4.2 (we use git-*-fetch –stdin which makes fetching tags _MUCH_ faster)

* cg-log was reworked to support cg-log -d (show diffs inline), cg-log -S (pickaxe) and renames following (does not quite work, though; I decided not to fix it and wait for revisions.c in Git to support it since the perl script which takes care of this is quite a hack)
* cg-switch -l to stash your local changes when switching branches
* cg-commit –amend
* Tagging interface (cg-tag, cg-tag-ls, cg-tag-show) was greatly enhanced
* cg-patch -m for applying mailboxes
* cg-clone -l now sets up an alternate instead of symlinking the object db
* Support for cg-clone –reference
* cg-admin-setuprepo supports setting up repositories over SSH
* Support fetching over FTP
* Other cool stuff!

Happy hacking,


Petr “Pasky” Baudis

qgit-1.5.2 bug fix release

Wednesday, October 4th, 2006

From: “Marco Costalba” <mcostalba@gmail.com>

Date: Sat, 30 Sep 2006 08:30:03 +0200

This is mostly a bug fix release.

Fixes are all over the place but most important are the fixes to code range filtering.

Code range filtering is when you select some text in file viewer and
want to view the list of revisions that modified that code range.

Download tarball from http://www.sourceforge.net/projects/qgit
or directly from git public repository
git://git.kernel.org/pub/scm/qgit/qgit.git

Please refer to http://digilander.libero.it/mcostalba/ for additional
information.

Marco

ChangeLog from 1.5.1

  • - fix a memory leak in case annotation is closed while processing
  • - fix a rare segfault due to a race in annotation code
  • - fix commit when the change in working dir is a file deletion
  • - fix file list is not cleared when changing to revision with no files
  • - load file history without –topo-order option
  • - fix bold file content after removing range filter
  • - fix range filter miscalculation
  • - fixed two bugs in range filter code
  • - fix file view font to match main view one
  • - fix date/time column title issues
  • - fix a very rare hang on exit
  • - refactor exceptions handling code