monotone

Issue 21: continuation from 13032: cvs_import still creates wrong data on branch

Reported by Unknown User, May 12, 2005

(This entry was imported from the savannah tracker, original 
location: https://savannah.nongnu.org/bugs/index.php?13063)

[I apparently cannot add to bug 13032 since I have no account]

The patch checked it indeed changes the behavior, but the result is 
still not correct.  I get

2004-01-05  Ulrich Drepper  <drepper@redhat.com>

        * Makefile.am: Support separate libelf built.

        * elfutils.spec.in: Create separata elfutils-libelf-devel 
package.
        Install libdw DSOs.

        * configure.ac (AC_CONFIG_SRCDIR): Use libelf/libelf.h as 
the file
        name.
[...]

while the result should be

2005-02-22  Ulrich Drepper  <drepper@redhat.com>

        * Makefile.am (all_SUBDIRS): Don't add doc subdir for now.
        * configure.ac: Don't use doc subdir for now.

2005-02-15  Ulrich Drepper  <drepper@redhat.com>

        * configure.ac: Remove AM_GNU_GETTEXT use.  Use only 
AM_PO_SUBDIRS.
[...]


This did not surprise me since, as I wrote to Nathaniel in a private 
mail, there seems to be a fatal flaw in the implementation.  I 
haven't looked at the actual code but the fact that the content or 
appearence of one file can effect the content of another file shows 
that.

The selection of a version associated with a branch point in one 
file is completely independent of the selection of a branch point in 
another file.  One file might not be modified from day 1 (and might 
have dozens of branch names associated with it) while others change 
frequently and have high version numbers.  The only guarantee is 
that all names are on the same branch or the trunk.

For the import this means monotone has to determine the sequence in 
which the names are created (easy: sort by version number associated 
with the name) and then for each file on the branch/trunk which is 
smaller than the branch number, add the revisions.  Not sure 
how/whether you group them to simulate simultaneous checkins as 
patchsets.  And I assume 1.23 < 1.23.0.2.

In this process there is absolutely no dependence on the version 
number in another file.  The glue is the name and the name to 
version mapping has to be done for each file separately.

I think this is all obvious and maybe you feel lectured about the 
obvious, but the characteristics of the bug make me believe that the 
current code does something different.

monotone version:
-----------------
monotone 0.19 (base revision: 
57500fcac100c132527563af2155a89cf84f62cc)
Running on: Linux 2.6.11-1.1287_FC4 #1 Thu May 5 16:31:22 EDT 2005 
i686
Changes since base revision:

new_manifest [a54613ceedba928cd5f5d83fd9deebdcec4ddc82]

old_revision [57500fcac100c132527563af2155a89cf84f62cc]
old_manifest [d3e8bae1e267c1217430a1f394e48e85d28225bc]

patch "monotone.spec"
 from [1619421422b66900ee8324ed77c7c82f34d0752d]
   to [6b1b93f6d47c68f3af6e8d66b85444481c7b3d02]

patch "po/monotone.pot"
 from [85997f09b04320ce8cbc0972e57a3fbfb5be38da]
   to [78d9cc9c1e54a8164dd9b78b24000e40d3d7081a]


  Generated from data cached in the distribution;
  further changes may have been made.

  Generated from data cached in the distribution;
  further changes may have been made.

  Generated from data cached in the distribution;
  further changes may have been made.

Comment 1 by Unknown User, May 16, 2005

I believe I have corrected this bug with my changes in revision
be6e404d588dcf10b544e1d64f8d2ec4bc0982c8, which restructures the 
branch inference system according to your recommendations. please 
confirm it functions according to your expectations.

Created: 14 years 2 months ago by Unknown User

Updated: 14 years 2 months ago

Status: New

Labels:
Type:Incorrect Behavior
Component:Storage System
Priority:Medium

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status