savannah-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers] submission of Eraserhead's Patch Manager - savannah.g


From: eraserhead
Subject: [Savannah-hackers] submission of Eraserhead's Patch Manager - savannah.gnu.org
Date: Fri, 22 Aug 2003 13:18:53 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

A package was submitted to savannah.gnu.org
This mail was sent to address@hidden, address@hidden


Jay 'Eraserhead' Felice <address@hidden> described the package as follows:
License: gpl
Other License: 
Package: Eraserhead's Patch Manager
System name: epm
Type: GNU

Description:
epm is `Eraserhead's Patch Manager'.  It was inspired by `pm', which started 
with mozilla project, had a fork for working with CVS, then was remerged.  It 
is structurally very different, though.

There were three reasons for the reimplementation:

1) epm is designed to allow the user to shoot off many small (perhaps 
overlapping) patches on a possibly large work tree.  It can keep track of a 
stack of patches and you can push an empty patch on the stack and work with it, 
then pop it off the stack (which reverts your workspace) and work on something 
else, then you can push it back on, etc.  `pm' cannot handle overlapping 
patches.

2) `pm' cannot handle making patches with new files against a CVS repository to 
which you don't have access.  (Since you'd have to `cvs add' the file first.)

3) `pm' requires CVS.  I frequently work on quick patches for packages not in 
CVS.  `epm' can work on any files in your system.

epm is written in C.

Here's is a quick idea of how it works:

$ epm push foo-patch
$ epm add foo.c
$ vi foo.c
$ epm add foo2.c
$ rm -f foo2.c
$ epm diff |mail -s 'patch to fix foo' address@hidden
$ epm push foo-feature-patch
$ epm add foo.c
$ vi foo.c
$ epm diff |mail -s 'patch to add feature to foo (requires foo fix)' 
address@hidden

The first diff would include changes to foo.c and the deletion of foo2.c.  The 
second diff would only include the changes for foo.c from the first patch to 
the second patch (since it was pushed on top of the first patch).

First working version is available at http://eraserhead.net/epm-0.1.0.tar.gz


Other Software Required:
It depends on -lpopt, -lxml2, -lglib2.  It shells out to an installed `diff' 
command and `merge' command.  It uses the GNU %z extension to strftime(), so it 
likely requires glibc.

Other Comments:



_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]