# [PATCH] cvs export: ensure we add directories in order

1 messages from 2007-10-18 to 2007-10-18. Participants: Alex Bennee.
Thread: https://gitlist.dev/t/10363

## Alex Bennee, 2007-10-18 16:15

Subject: [PATCH] cvs export: ensure we add directories in order
Message-ID: <1192724144.26933.64.camel@murta.transitives.com>
URL: https://gitlist.dev/e/1192724144.26933.64.camel%40murta.transitives.com

```
Hi,

CVS gets understandably upset if you try and add a subdirectory before
it's parent directory. This patch fixes that.

>From d99d4e7eb0ce7b85fb84d3c57f57abbb100baa5e Mon Sep 17 00:00:00 2001
From: Alex Bennee <alex@bennee.com>
Date: Thu, 18 Oct 2007 17:12:13 +0100
Subject: [PATCH] Ensure we add directories in the correct order

---
 git-cvsexportcommit.perl |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index 0a21215..a70c583 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -234,6 +234,17 @@ print "Applying\n";
 
 print "Patch applied successfully. Adding new files and directories to CVS\n";
 my $dirtypatch = 0;
+
+#
+# We have to add the directories in order otherwise we will have
+# problems when we try and add the sub-directory of a directory we
+# have not added yet.
+#
+# Luckily this is easy to deal with by sorting the directories and
+# dealing with the shortest ones first.
+#
+@dirs = sort { length $a <=> length $b} @dirs;
+
 foreach my $d (@dirs) {
     if (system(@cvs,'add',$d)) {
 	$dirtypatch = 1;
-- 
1.5.2.5



-- 
Alex, homepage: http://www.bennee.com/~alex/
Business is a good game -- lots of competition and minimum of rules. You
keep score with money. -- Nolan Bushnell, founder of Atari

```
