info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Import on existing repository ? / SOLUTION


From: TestMan
Subject: Re: Import on existing repository ? / SOLUTION
Date: Wed, 14 Sep 2005 11:57:25 +0200
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Hi All,

Ok, I've found a solution so let's push it to the community ;-)

The key point was to use Apache Ant and create a custom ant task that is doing almost what the sync task is doing but with the following behaviour : - copy file from source to destination if source file is existing in destination (overwrite file) - add file from source to destination if source file is not existing in destination (add file) - remove file from destination if destination file is not existing in source (remove file)
- ignore CVS folders
- generate a XML log on add/remove with relative path to base dir (to be compatible with CVS commands)

Then the rest of the thing was only a matter of CVS good ole commands.

Another trick is to use the XML log with a XSL to generate a XML Ant sub-script that will perform the CVS add & remove operations required.

Finaly All you have to do is do a script that :
1. unzip
2. CVS checkout
3. synchronize (my custome one)
4. xslt to generate the sub-ant script (containing CVS update and CVS remove)
5. call the sub-ant script
6. CVS update
7. CVS commit
8. CVS tag

Hope this will helps anybody ...

Regards,
TM

TestMan wrote:
Hi Andy,

No, if a file has been removed in the new release (no more required in the "release") then import will not remove it. And as import is not pulling a consistent "status" of job done, you are not able to do a delete afterward :(

Thanks anyway ...
TM

Andy Jones wrote:

If you can do an import, then you can do a checkout and a commit,
which sounds like what you need...

On 08/09/05, TestMan <address@hidden> wrote:

Hi all,

I got the following issue :
- A customer is having a centralized CVS repository.
- We have to deliver new release source code trees into it (code is
consistent and working).
- Development team does not have access to "checkout" of the repository
(so no "existing" versions or diff can be found). Hence they are working
on their own repository.

And I need to deliver the updated "release" into the CVS. How can I do
that with CVS ?

FYI, the first time an cvs import is perfectly working as expected, but
second time it does not work as files that have been removed from new
release or updated with a conflict are not "synced".

Hence, how can i do an import on an existing repository with the
following effects :
- new files are added in the repositories
- change in files are applied to the repository (no concurent update
from the same provider possible, so what is delivered is what should be
exactly pushed in the repository)
- deleted files and folder are deleted in the repository
- up-to-date branch is created with BUILDXXXXXX tag key

I thought it was "easy" to do, but I am stuck on that since days and
found no ways to do it ... so any help is welcomed ;-)

Regards,
TM


reply via email to

[Prev in Thread] Current Thread [Next in Thread]