Opened 16 years ago

Closed 16 years ago

#173 closed defect (fixed)

'make check' with --enable-wctests fails if no test repository is checked out

Reported by: Jari Häkkinen Owned by: Jari Häkkinen
Priority: major Milestone: 0.6
Component: core Version: trunk
Keywords: Cc:


Starting with a clean checkout, make check fails.

Change History (12)

comment:1 Changed 16 years ago by Jari Häkkinen

Status: newassigned

comment:2 Changed 16 years ago by Jari Häkkinen

This is not a make problem. The problem is due to the test repository. When changes are committed to the repo new files are created and these must be added to the svndigest repository.

We should maybe change to bdb repository (the current is a FSFS repo). Before this it should be verified that bdb repos do not create new files. Another option could be to create a program that could be used to check that the test repo is commited in a working state.

The file svndigest/test/repo/db/current has information on how many revs there are in the repo. The file mismatches with the content of svndigest/test/repo/db/revs and svndigest/test/repo/db/revprops.

Peter, you have to add some more test repo files.

comment:3 Changed 16 years ago by Peter Johansson

(In [270]) adding added files in repo refs #173

comment:4 Changed 16 years ago by Jari Häkkinen

I have performed bdb test. No additional files are created for at least small repo changes. However, there is a 13MB binary file that is changed for every commit. The will be tedious to transfer over the network at every change.

I suggest that we stick with the FSFS repository and add developer information about the issue of adding new files to the test repository.

comment:5 Changed 16 years ago by Peter Johansson

What have checked in something in test repo, he (or she in a happy future) needs to issue

svn add test/repo/db/revs/*
svn add test/repo/db/revprops/*

Ok, so I see two solutions (and neither is really good)

1) in add these lines, i.e., the repo is always ok after issuing 'make check'

2) in the tests (wctests) add a test for checking if the repo is ok. More xectly check that files added is in line with the information in current. Well actually after peeping into that file (test/repo/db/current) I'm not sure if this is a solution.

comment:6 in reply to:  5 Changed 16 years ago by Jari Häkkinen

Replying to peter:

1) might work, but will create a screen full of

svn: warning: '' is already under version control

2) The current file of the test repo needs to be checked against the "add status" of the svndigest repository. This is nicer than 1).

However, I was more into a wiki page on developer information explaining why this is an issue and how to behave when changing the test repo.

comment:7 Changed 16 years ago by Peter Johansson

Your suggestion is easier to implement, but they are not excluding. Information together with a test seems to be sensible.

comment:8 Changed 16 years ago by Jari Häkkinen

Ok, I am working on 2) then.

comment:9 Changed 16 years ago by Jari Häkkinen

Thinking on the solution makes one realize that there are many weaknesses with have a repo within the svndigest repository.

It is easy to create severe conflicts in the test repo. Imaging the case when two developers adds test commits to the test repo, and then tries to add these to the svndigest repo. Since there are different versions of the same test repo revisions, the developer committing to the svndigest will get messages about file in the way ... This is just one situation with possible conflicts.

Should we move away the test repo to an external repository?

comment:10 Changed 16 years ago by Jari Häkkinen

We decided to move the test repo to an independent repository.

comment:11 Changed 16 years ago by Jari Häkkinen

We have reconsidered, the test repository stays as a part of the svndigest repo. We'll have to write a short doc about this for developers.

comment:12 Changed 16 years ago by Jari Häkkinen

Resolution: fixed
Status: assignedclosed

(In [328]) Fixes #173. 'make check' compares test and svndigest repos and complains if the repos are out of sync.

Note: See TracTickets for help on using tickets.