Index: cvs2svn.py
===================================================================
--- cvs2svn.py	(revision 8678)
+++ cvs2svn.py	(working copy)
@@ -315,10 +315,13 @@
     # Ratchet up the highest vendor head revision, if necessary.
     if self.default_branch:
       if revision.find(self.default_branch) == 0:
-        # This revision is on the default branch, so record that it is
-        # the new highest vendor head revision.
+        # This revision is on the default branch, so see if it is
+        # the new highest vendor head revision, by checking that it
+        # is not a branch off of the vendor branch
         rel_name = relative_name(self.cvsroot, self.fname)[:-2]
-        self.default_branches_db[rel_name] = revision
+        if revision.find('.', len(self.default_branch) + 1) == -1:
+          # This is the main vendor branch, update to this revision
+          self.default_branches_db[rel_name] = revision
     else:
       # No default branch, so make an educated guess.
       if revision == '1.2':
@@ -2190,19 +2193,7 @@
           sym_tracker.fill_branch(dumper, ctx, br)
       print "    adding or changing %s : '%s'" % (cvs_rev, svn_path)
 
-      # Only make a change if we need to.  When 1.1.1.1 has an empty
-      # deltatext, the explanation is almost always that we're looking
-      # at an imported file whose 1.1 and 1.1.1.1 are identical.  On
-      # such imports, CVS creates an RCS file where 1.1 has the
-      # content, and 1.1.1.1 has an empty deltatext, i.e, the same
-      # content as 1.1.  There's no reason to reflect this non-change
-      # in the repository, so we want to do nothing in this case.  (If
-      # we were really paranoid, we could make sure 1.1's log message
-      # is the CVS-generated "Initial revision\n", but I think the
-      # conditions below are strict enough.)
-      if not ((dt_code == DELTATEXT_EMPTY) and (cvs_rev == "1.1.1.1")
-              and dumper.probe_path(svn_path)):
-        closed_tags, closed_branches = \
+      closed_tags, closed_branches = \
                      dumper.add_or_change_path(cvs_path,
                                                svn_path,
                                                cvs_rev,
@@ -2210,11 +2201,11 @@
                                                tags,
                                                branches,
                                                ctx.cvs_revnums)
-        if is_trunk_vendor_revision(ctx.default_branches_db,
-                                    cvs_path, cvs_rev):
-          default_branch_copies.append((cvs_path, br, tags, branches))
-        sym_tracker.close_tags(svn_path, svn_rev, closed_tags)
-        sym_tracker.close_branches(svn_path, svn_rev, closed_branches)
+      if is_trunk_vendor_revision(ctx.default_branches_db,
+                                  cvs_path, cvs_rev):
+        default_branch_copies.append((cvs_path, br, tags, branches))
+      sym_tracker.close_tags(svn_path, svn_rev, closed_tags)
+      sym_tracker.close_branches(svn_path, svn_rev, closed_branches)
 
     for rcs_file, cvs_rev, dt_code, br, tags, branches in self.deletes:
       # compute a repository path, dropping the ,v from the file name

