--- cvs2darcs-0.7.1/cvs_convert.pl	2004-11-26 20:57:29.000000000 +0100
+++ cvs2darcs-0.7.1-patched/cvs_convert.pl	2008-03-13 21:24:11.000000000 +0100
@@ -98,6 +98,9 @@
   get_directory("");
 }
 
+my $prev_date = "";
+my $prev_name = "";
+
 # loop indefinitely unless $lastpatch is defined
 while (!defined $lastpatch || $patchset_num<$lastpatch) {
     $patchset_num++;
@@ -194,12 +197,19 @@
     }
 
     # record patch in darcs
-    chdir $base_darcs; open(DARCS,"| darcs record -va --look-for-adds --pipe");
-    print DARCS "$date\n";
-    print DARCS "$author\n";
-    print DARCS "$name\n";
-    print DARCS "$log";
-    close(DARCS);
+    if ($date eq $prev_date && $name eq $prev_name) { 
+      print "IDENTICAL PATCHES, using amend-record...\n";
+      chdir $base_darcs; open(DARCS,"| darcs amend-record -va --look-for-adds");
+      print DARCS "y\n";
+      close(DARCS);
+    } else {
+      chdir $base_darcs; open(DARCS,"| darcs record -va --look-for-adds --pipe");
+      print DARCS "$date\n";
+      print DARCS "$author\n";
+      print DARCS "$name\n";
+      print DARCS "$log";
+      close(DARCS);
+    }
 
     if ($havetag) {
         # recording tag in darcs
@@ -227,4 +237,7 @@
     if ($patchset_num % 1000 == 0) {
         echosystem("darcs optimize");
     }
+
+    $prev_date = $date;
+    $prev_name = $name;
 }

