More Darcs win: Selective recording
Darcs lets you choose which changes you want to include in a patch (commit). For example:
darcs rec %~/ASL test apps/aslsearch(0) move ./aslsearch.m ./aslsearch.c Shall I record this change? (1/?) [ynWsfqadjkc], or ? for help: y hunk ./aslsearch.c 1 -#import <Foundation/Foundation.h> - -#include <stdlib.h> -#include <stdbool.h> -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <vis.h> -#include <asl.h> - Shall I record this change? (2/?) [ynWsfqadjkc], or ? for help: n hunk ./aslsearch.c 29 - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - Shall I record this change? (3/?) [ynWsfqadjkc], or ? for help: y hunk ./aslsearch.c 75 - [pool release]; Shall I record this change? (4/?) [ynWsfqadjkc], or ? for help: y hunk ./aslsearch.c 194 + fprintf(stderr, "key: \e2\80\9c%s\e2\80\9d\noperator: 0x%x\nvalue: \e2\80\9c%s\e2\80\9d\n", key, operator, value); Shall I record this change? (5/?) [ynWsfqadjkc], or ? for help: n hunk ./aslsearch.xcodeproj/project.pbxproj 10 - 8DD76F9A0486AA7600D96B5E /* aslsearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* aslsearch.m */; settings = {ATTRIBUTES = (); }; }; + 8DD76F9A0486AA7600D96B5E /* aslsearch.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* aslsearch.c */; settings = {ATTRIBUTES = (); }; }; Shall I record this change? (6/?) [ynWsfqadjkc], or ? for help: ? How to use record... y: record this patch n: don't record it w: wait and decide later, defaulting to no s: don't record the rest of the changes to this file f: record the rest of the changes to this file d: record selected patches, skipping all the remaining patches a: record all the remaining patches q: cancel record j: skip to next patch k: back up to previous patch c: calculate number of patches h or ?: show this help <Space>: accept the current default (which is capitalized) hunk ./aslsearch.xcodeproj/project.pbxproj 10 - 8DD76F9A0486AA7600D96B5E /* aslsearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* aslsearch.m */; settings = {ATTRIBUTES = (); }; }; + 8DD76F9A0486AA7600D96B5E /* aslsearch.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* aslsearch.c */; settings = {ATTRIBUTES = (); }; }; Shall I record this change? (6/?) [ynWsfqadjkc], or ? for help: f hunk ./aslsearch_Prefix.pch 5 -#ifdef __OBJC__ -# import <Foundation/Foundation.h> -#endif - Shall I record this change? (10/?) [ynWsfqadjkc], or ? for help: y hunk ./aslsearch_Prefix.pch 8 +#include <unistd.h> Shall I record this change? (11/?) [ynWsfqadjkc], or ? for help: n What is the patch name? Switched source file from Obj-C to pure C Do you want to add a long comment? [yn]n Finished recording patch 'Switched source file from Obj-C to pure C'
(Before you mention the UTF-8 sequences that Darcs called out as invalid ASCII: Yes, I know.)