RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Gerarde_Albro
Perhaps this would help;

In BuildRunner.cs, selecting the temp build directory and retrieving the
source code is the reponsibility of GetSource() as below. 

private string GetSource() {
string temp = Path.GetTempFileName();
File.Delete(temp);
Directory.CreateDirectory(temp);
IRepository scc =
RepositoryFactory.CreateRepository(processRunner, build);
scc.Login();
scc.GetSource(temp);

return temp;
}

If the DracoBuild object was modified slightly, these features could
then become configurable via the  in the draco.net.config file.
For example;

private string GetSource() {
string temp = build.GetBuildDirectory();
if (!build.DoNotGet()) {
IRepository scc =
RepositoryFactory.CreateRepository(processRunner, build);
scc.Login();
  scc.GetSource(temp);
}
return temp;
}

Assume everything works by default the same as it does today. But
suppose you want draco to compile against the sourcesafe shadow
directory on the network. Changing Draco to support a build config file
that looks like this:

  
  project

should accomplish what is needed, and would be rather simple to develop,
since it is mostly a matter of moving a few lines of code around. This
also would be nice for Nant based builds that are designed to get the
source too.

- Jerry




> I spent the weekend trying to get Draco to use a "working
> set" of the source code using VSS (this is just exploration 
> and isnt expected to be put into production).  The idea of 
> this was that from the Modification list that comes back, if 
> Draco new all the full pathname and filename to each file 
> that had been modified, Draco could simply get latest or 
> delete them as required.  But in M$ infinite wisdom, VSS 
> provides a full path only for Updates. 
> When a file is removed, or added, you arent told the full 
> path of the project.  If the project hierarchy has the same 
> name elsewhere in the tree (which is possible), it seems one 
> wouldnt be able to deduce which project had the add/remove 
> operation.  However, I did prove the concept.  Maybe if other 
> SCC do provide richer information, this could be introduced.

Sounds worthy of further investigation. Since build times aren't
currently an issue for us (though that's not to say they might not be at
some point) I personally prefer draco to kick-off a clean build each
time, taking a completely fresh copy of the source. Having said that,
just having the ability to specify the location where draco will extract
the source could be useful, especially if there could be some kind of
"pre fetch" event whereby you could hook in a script to carry out tasks
such as labelling the source and cleaning out destination folders etc.

Phil 


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory ... instead of check i ng out to a different place each time?

2003-12-11 Thread Yves Reynhout
Title: RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?





I'd rather call it "getsource" or simply "get".


So,

  project
becomes

  project





RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Mark Griffiths

I'm all for making Draco more flexible - and for not enforcing the 'super clean' build
method on everyone.  It really sounds like we want to have a cleaner separation between
the polling, getting and building within Draco.

Nick, you described an idea to take a list of modifications and perform a 'get' on each
changed file.  Speaking for CVS and SVN, this functionality is already implemented in 
"cvs
update" and "svn update".  I remember VSS had a "get latest version" command.  Is there
anything stopping us from using this command?  Is the performance just as bad as a 
fresh
checkout?

I ask because I am thinking that IRepository could be updated to:

public interface IRepository {
void Login();
void GetSource(string workingDirectory);
void UpdateSource(string workingDirectory);
Modification[] GetModifications(DateTime sinceDate);
}

And in the Draco configuration:


http://svn.repository.com/svn/trunk
johndoe
password

c:\draco\myproject


Draco's logic would be as follows:

- if working folder not specified, then create one in the temp directory (as 
current)

- if working folder specified, but it does not exist, then do a GetSource()

- if working folder specified and it exists, then do a UpdateSource()

We could also have an attribute on  called persistent.  Setting this
attribute to false will delete the workingDirectory after use.

Mark



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


Re: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Nick Robinson
Mark, it seems there is an issue with the output produced from VSS in the 
History/Update list.  If a file is added or removed, it is difficult to
ascertain where the file was added or removed to.  You get a project name, but its not 
a full path like an update, that looks like this:

Update file = DataShaper.sln
Update Directory = $/Gloria/Source/Production/Syngenta/Gloria/Deployment/DataShaper

Add file = DBTestFixture.cs
Add Directory = DB.TestCases

The occurs for a Remove.  On my current project on which I did a bit of exploration, 
it seems we have a bunch of projects all called the same
(DB.TestCases for example), which exist underneath different parent directories.  In 
this situation it is impossible to know which DB.TestCases had
the DBTestFixture.cs added.

It could be I have missed something, so I am not 100% discounting this method with 
VSS.  Even if VSS is the only tool that couldnt benefit from
discriminate file access, it is definitely worth considering for the other SCC tools.

Nick.
"Mark Griffiths" <[EMAIL PROTECTED]> wrote:

> 
> I'm all for making Draco more flexible - and for not enforcing the 'super
> clean' build
> method on everyone.  It really sounds like we want to have a cleaner separation
> between
> the polling, getting and building within Draco.
> 
> Nick, you described an idea to take a list of modifications and perform a 'get'
> on each
> changed file.  Speaking for CVS and SVN, this functionality is already
> implemented in "cvs
> update" and "svn update".  I remember VSS had a "get latest version" command. 
> Is there
> anything stopping us from using this command?  Is the performance just as bad
> as a fresh
> checkout?
> 
> I ask because I am thinking that IRepository could be updated to:
> 
> public interface IRepository {
> void Login();
> void GetSource(string workingDirectory);
> void UpdateSource(string workingDirectory);
> Modification[] GetModifications(DateTime sinceDate);
> }
> 
> And in the Draco configuration:
> 
> 
> http://svn.repository.com/svn/trunk
> johndoe
> password
> 
> c:\draco\myproject
> 
> 
> Draco's logic would be as follows:
> 
> - if working folder not specified, then create one in the temp directory
> (as current)
> 
> - if working folder specified, but it does not exist, then do a
> GetSource()
> 
> - if working folder specified and it exists, then do a UpdateSource()
> 
> We could also have an attribute on  called persistent. 
> Setting this
> attribute to false will delete the workingDirectory after use.
> 
> Mark
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 

nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Mark Griffiths
Nick 

> Mark, it seems there is an issue with the output produced 
> from VSS in the History/Update list.  If a file is added or 
> removed, it is difficult to ascertain where the file was 
> added or removed to.  You get a project name, but its not a 
> full path like an update, that looks like this:
> 
> Update file = DataShaper.sln
> Update Directory = 
> $/Gloria/Source/Production/Syngenta/Gloria/Deployment/DataShaper
> 
> Add file = DBTestFixture.cs
> Add Directory = DB.TestCases
> 
> The occurs for a Remove.  On my current project on which I 
> did a bit of exploration, it seems we have a bunch of 
> projects all called the same (DB.TestCases for example), 
> which exist underneath different parent directories.  In this 
> situation it is impossible to know which DB.TestCases had the 
> DBTestFixture.cs added.
> 

Yes, it looks like a show stopper for this approach.

> It could be I have missed something, so I am not 100% 
> discounting this method with VSS.  Even if VSS is the only 
> tool that couldnt benefit from discriminate file access, it 
> is definitely worth considering for the other SCC tools.

I think you missed my point.  An SCC system is usually capable of bringing an existing
working directory 'up to date'.  I do not think that Draco should take on this role.

I just checked the following with VSS :-
- Created a large project in the VSS repository (lots of files, some large some small)
- Did a SS.EXE GET - it took about 2 mins
- Added another file to the repository (bypassing the working directory)
- Did another SS.EXE GET in the working directory - it took about 5 seconds

I know that VSS is not client/server, therefore accessing a repository over the WAN 
might
mean that the cost of checking if a file changed is just as slow as fetching the file
fresh (at least for small files).

The point is that, if Draco were modified to allow a fixed working directory to be
specified, then we could rely on the SCC implementation to bring the working directory 
up
to date prior to a build.

Mark



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


Re: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Nick Robinson
"Mark Griffiths" <[EMAIL PROTECTED]> wrote:

> Nick 
> 
> > Mark, it seems there is an issue with the output produced 
> > from VSS in the History/Update list.  If a file is added or 
> > removed, it is difficult to ascertain where the file was 
> > added or removed to.  You get a project name, but its not a 
> > full path like an update, that looks like this:
> > 
> > Update file = DataShaper.sln
> > Update Directory = 
> > $/Gloria/Source/Production/Syngenta/Gloria/Deployment/DataShaper
> > 
> > Add file = DBTestFixture.cs
> > Add Directory = DB.TestCases
> > 
> > The occurs for a Remove.  On my current project on which I 
> > did a bit of exploration, it seems we have a bunch of 
> > projects all called the same (DB.TestCases for example), 
> > which exist underneath different parent directories.  In this 
> > situation it is impossible to know which DB.TestCases had the 
> > DBTestFixture.cs added.
> > 
> 
> Yes, it looks like a show stopper for this approach.
> 
> > It could be I have missed something, so I am not 100% 
> > discounting this method with VSS.  Even if VSS is the only 
> > tool that couldnt benefit from discriminate file access, it 
> > is definitely worth considering for the other SCC tools.
> 
> I think you missed my point.  An SCC system is usually capable of bringing an
> existing
> working directory 'up to date'.  I do not think that Draco should take on this
> role.
> 

I did miss your point then.

> I just checked the following with VSS :-
> - Created a large project in the VSS repository (lots of files, some large some
> small)
> - Did a SS.EXE GET - it took about 2 mins
> - Added another file to the repository (bypassing the working directory)
> - Did another SS.EXE GET in the working directory - it took about 5 seconds
> 

Thats excellent news.  I use SS GET locally in our build enviornment, but typically it 
is always a clean GET, hence i had overlooked the other
functionality for the GET on the same source directory.

> I know that VSS is not client/server, therefore accessing a repository over the
> WAN might
> mean that the cost of checking if a file changed is just as slow as fetching
> the file
> fresh (at least for small files).
> 
> The point is that, if Draco were modified to allow a fixed working directory to
> be
> specified, then we could rely on the SCC implementation to bring the working
> directory up
> to date prior to a build.
> 

Yes I see.  That is good news.  One issue: VSS doesnt delete from the working 
directory if you delete a file (i have tried this and it didnt).  The
file was still there in the directory and, depending on how you build, this could be a 
problem.  Some use *.* within NAnt to include all the source
files in the build.


> Mark
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 

nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Mark Griffiths
> 
> Yes I see.  That is good news.  One issue: VSS doesnt delete 
> from the working directory if you delete a file (i have tried 
> this and it didnt).  The file was still there in the 
> directory and, depending on how you build, this could be a 
> problem.  Some use *.* within NAnt to include all the source 
> files in the build.
> 

That is really nasty and highlights one of the strengths of the 'super clean build'.  
No
'clean' target is going to help here.  I guess you would have to adopt a guideline not 
to
use **/*.cs and instead explicitly list each file within NAnt.

Mark



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


Re: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Nick Robinson
"Mark Griffiths" <[EMAIL PROTECTED]> wrote:

> > 
> > Yes I see.  That is good news.  One issue: VSS doesnt delete 
> > from the working directory if you delete a file (i have tried 
> > this and it didnt).  The file was still there in the 
> > directory and, depending on how you build, this could be a 
> > problem.  Some use *.* within NAnt to include all the source 
> > files in the build.
> > 
> 
> That is really nasty and highlights one of the strengths of the 'super clean
> build'.  No
> 'clean' target is going to help here.  I guess you would have to adopt a
> guideline not to
> use **/*.cs and instead explicitly list each file within NAnt.
> 

Yes.  When you mentioned the SS GET updating the source, I thought "How could have I 
missed such a rudimentary principle of an SCC".  But alas, a good
couple of months ago I investigated having a "working set" in a specified location to 
improve build performance.  At the time I realized the Removes
never removed from the local machine.  This was why I headed off looking to see if 
keeping a working set programmatically, using the output from the
history, could allow us to delete when a Remove occurs.  I dont know how the others 
report updates/adds/removes - I doubt they would be consistent.

Not using the **/*.CS might not be too much of a problem with the new version of NAnt 
that works with solutions.

Nick.
> Mark
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 

nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Mark Griffiths
> 
> Yes.  When you mentioned the SS GET updating the source, I 
> thought "How could have I missed such a rudimentary principle 
> of an SCC".  But alas, a good couple of months ago I 
> investigated having a "working set" in a specified location 
> to improve build performance.  At the time I realized the 
> Removes never removed from the local machine.  This was why I 
> headed off looking to see if keeping a working set 
> programmatically, using the output from the history, could 
> allow us to delete when a Remove occurs.  I dont know how the 
> others report updates/adds/removes - I doubt they would be consistent.
> 

Subversion and CVS both remove files from a working directory if they have been 
removed in
the repository.

I think the moral of the story is that VSS is not suited to modern development 
practices.
That's about as polite as I can get.  Have you tried looking at Vault?

Cheers
Mark




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


Re: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Nick Robinson
"Mark Griffiths" <[EMAIL PROTECTED]> wrote:

> > 
> > Yes.  When you mentioned the SS GET updating the source, I 
> > thought "How could have I missed such a rudimentary principle 
> > of an SCC".  But alas, a good couple of months ago I 
> > investigated having a "working set" in a specified location 
> > to improve build performance.  At the time I realized the 
> > Removes never removed from the local machine.  This was why I 
> > headed off looking to see if keeping a working set 
> > programmatically, using the output from the history, could 
> > allow us to delete when a Remove occurs.  I dont know how the 
> > others report updates/adds/removes - I doubt they would be consistent.
> > 
> 
> Subversion and CVS both remove files from a working directory if they have been
> removed in
> the repository.
> 
> I think the moral of the story is that VSS is not suited to modern development
> practices.
> That's about as polite as I can get.  Have you tried looking at Vault?
> 

Vault? No I havent looked at it.  Whose it by?

> Cheers
> Mark
> 
> 

nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Graeme Humphrey
SourceGear.

http://www.sourcegear.com/vault/
http://www.aspnetpro.com/productreviews/2003/04/asp200304jg_p/asp200304jg_p.
asp


Graeme Humphrey
Chive Software Limited
mailto: [EMAIL PROTECTED]
tel: +44 (0)1224 224320
tel: +44 (0)1224 224322 (direct) 

> -Original Message-
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf 
> Of Nick Robinson
> Sent: 11 December 2003 12:16
> To: [EMAIL PROTECTED]
> Subject: Re: [Draconet-users] RE: Having a Specific Working 
> Copy Directory... instead of check i ng out to a different 
> place each time?
> 
> "Mark Griffiths" <[EMAIL PROTECTED]> wrote:
> 
> > > 
> > > Yes.  When you mentioned the SS GET updating the source, 
> I thought 
> > > "How could have I missed such a rudimentary principle of 
> an SCC".  
> > > But alas, a good couple of months ago I investigated having a 
> > > "working set" in a specified location to improve build 
> performance.  
> > > At the time I realized the Removes never removed from the local 
> > > machine.  This was why I headed off looking to see if keeping a 
> > > working set programmatically, using the output from the history, 
> > > could allow us to delete when a Remove occurs.  I dont 
> know how the 
> > > others report updates/adds/removes - I doubt they would 
> be consistent.
> > > 
> > 
> > Subversion and CVS both remove files from a working 
> directory if they 
> > have been removed in the repository.
> > 
> > I think the moral of the story is that VSS is not suited to modern 
> > development practices.
> > That's about as polite as I can get.  Have you tried 
> looking at Vault?
> > 
> 
> Vault? No I havent looked at it.  Whose it by?
> 
> > Cheers
> > Mark
> > 
> > 
> 
> nick robinson
> site   : http://www.fromconcept.co.uk
> weblog : http://www.fromconcept.co.uk/weblog.aspx
> 
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign 
> up for IBM's Free Linux Tutorials.  Learn everything from the 
> bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


Re: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Nick Robinson
Thanks for that Graeme.  Looks like an interesting tool

"Graeme Humphrey" <[EMAIL PROTECTED]> wrote:

> SourceGear.
> 
> http://www.sourcegear.com/vault/
> http://www.aspnetpro.com/productreviews/2003/04/asp200304jg_p/asp200304jg_p.
> asp
> 
> 
> Graeme Humphrey
> Chive Software Limited
> mailto: [EMAIL PROTECTED]
> tel: +44 (0)1224 224320
> tel: +44 (0)1224 224322 (direct) 
> 
> > -Original Message-
> > From: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED] On Behalf 
> > Of Nick Robinson
> > Sent: 11 December 2003 12:16
> > To: [EMAIL PROTECTED]
> > Subject: Re: [Draconet-users] RE: Having a Specific Working 
> > Copy Directory... instead of check i ng out to a different 
> > place each time?
> > 
> > "Mark Griffiths" <[EMAIL PROTECTED]> wrote:
> > 
> > > > 
> > > > Yes.  When you mentioned the SS GET updating the source, 
> > I thought 
> > > > "How could have I missed such a rudimentary principle of 
> > an SCC".  
> > > > But alas, a good couple of months ago I investigated having a 
> > > > "working set" in a specified location to improve build 
> > performance.  
> > > > At the time I realized the Removes never removed from the local 
> > > > machine.  This was why I headed off looking to see if keeping a 
> > > > working set programmatically, using the output from the history, 
> > > > could allow us to delete when a Remove occurs.  I dont 
> > know how the 
> > > > others report updates/adds/removes - I doubt they would 
> > be consistent.
> > > > 
> > > 
> > > Subversion and CVS both remove files from a working 
> > directory if they 
> > > have been removed in the repository.
> > > 
> > > I think the moral of the story is that VSS is not suited to modern 
> > > development practices.
> > > That's about as polite as I can get.  Have you tried 
> > looking at Vault?
> > > 
> > 
> > Vault? No I havent looked at it.  Whose it by?
> > 
> > > Cheers
> > > Mark
> > > 
> > > 
> > 
> > nick robinson
> > site   : http://www.fromconcept.co.uk
> > weblog : http://www.fromconcept.co.uk/weblog.aspx
> > 
> > 
> > 
> > 
> > ---
> > This SF.net email is sponsored by: IBM Linux Tutorials.
> > Become an expert in LINUX or just sharpen your skills.  Sign 
> > up for IBM's Free Linux Tutorials.  Learn everything from the 
> > bash shell to sys admin.
> > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> > ___
> > Draconet-users mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/draconet-users
> > 
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 

nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread David Reed
> > "Mark Griffiths" <[EMAIL PROTECTED]> wrote:
> >
> > > I think the moral of the story is that VSS is not suited to modern
> > > development practices.
> > > That's about as polite as I can get.  Have you tried
> > looking at Vault?

Vault's marketed as VSS-in-a-SQL-Server...  Other than a different
repository on the back end, what about it makes suited to the alleged
"modern development practices"?  Does it solve the
keeping-the-working-directory-in-sync-with-source-control problem?

More importantly, does Draco do Vault?  :)

[With regards to the actual thread topic: using NAnt to get latest into
the same location every time instead of relying on Draco for that
purpose would seem to be preferable rather than adding more complexity
to the very lean, sharp Draco feature set.  Unless Chive wants to turn
Draco into a full-blown build tool to rival NAnt and MSBuild...]

/*
 * David Reed <[EMAIL PROTECTED]>
 * Director of Product Development
 * 713.490.7522 (office) ~ 832.215.3188 (cell)
 *   Toll Free 1-866-373-2548 x122
 *
 * "Women and cats will do as they please,
 *  and men and dogs should relax and get
 *  used to the idea." - Robert A. Heinlein
 */


> -Original Message-
> From: [EMAIL PROTECTED]
[mailto:draconet-users-
> [EMAIL PROTECTED] On Behalf Of Graeme Humphrey
> Sent: Thursday, December 11, 2003 6:25 AM
> To: [EMAIL PROTECTED]
> Subject: RE: [Draconet-users] RE: Having a Specific Working Copy
> Directory... instead of check i ng out to a different place each time?
> 
> SourceGear.
> 
> http://www.sourcegear.com/vault/
>
http://www.aspnetpro.com/productreviews/2003/04/asp200304jg_p/asp200304j
g_
> p.
> asp
> 
> 
> Graeme Humphrey
> Chive Software Limited
> mailto: [EMAIL PROTECTED]
> tel: +44 (0)1224 224320
> tel: +44 (0)1224 224322 (direct)


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


[Draconet-users] Building a web project under Draco.NET

2003-12-11 Thread Nick Robinson
Hi,

The system I am working on involves a web solution.  We set Draco up a good 10 months 
ago and had everything working.  Unfortunately the build server
died recently.  Now we have set up the new Draco server, we cannot get a successful 
build.  We have created a Virtual Directory underneath IIS.  We
have setup the web directory in Source Safe to always GET to this Virtual Directory.  
The problem is the solution never locates its dependancies,
because all of the projects the web solution uses end up being built in the depths of 
the profile + temp directory structure.

We feel there is something we have overlooked - we didnt document each step when we 
originally got the build working.  Has anybody else had a similar
problem, and can you tell us what we may have missed out in setting up the server?

Thanks,


nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Mark Griffiths
> 
> Vault's marketed as VSS-in-a-SQL-Server...  Other than a 
> different repository on the back end, what about it makes 
> suited to the alleged "modern development practices"?  Does 
> it solve the 
> keeping-the-working-directory-in-sync-with-source-control problem?
> 

As far as I remember, yes.  Vault will apply repository deletions to a working copy if 
you
tell it to.

Vault is also client/server, meaning it is suited for use across a WAN (arguably more
common now than 10 years ago).  Vault also support atomic commits which also become
important when WANs are involved.

We looked at Vault, liked it, but settled on Subversion.  I think Vault is well suited 
to
developers who are used to VSS.  For us, we had been using CVS for years so Subversion 
was
more natural.

> More importantly, does Draco do Vault?  :)

I found a posting on Vault's mailing lists suggesting someone has written one.  It's 
not
in the main Draco codebase however.  Vault has a pretty clean all .NET API, so 
integration
is probably easy.

> 
> [With regards to the actual thread topic: using NAnt to get 
> latest into the same location every time instead of relying 
> on Draco for that purpose would seem to be preferable rather 
> than adding more complexity to the very lean, sharp Draco 
> feature set.  Unless Chive wants to turn Draco into a 
> full-blown build tool to rival NAnt and MSBuild...]

I like the idea of allowing a working directory to be specified to override Draco
generated ones.  This will give users options and does not bloat Draco in my opinion.  
  

Draco is the glue between SCC and build tools, ideally the build tool should know 
nothing
about the SCC system (or Draco).  The dependency diagram should be something like:

   SCC <- Draco -> Build Tool

I agree with you that Draco should remain very lean and sharp.  I can't see it ever
rivaling NAnt and MSBuild, it's just glue.

Mark

> 
> /*
>  * David Reed <[EMAIL PROTECTED]>
>  * Director of Product Development
>  * 713.490.7522 (office) ~ 832.215.3188 (cell)
>  *   Toll Free 1-866-373-2548 x122
>  *
>  * "Women and cats will do as they please,
>  *  and men and dogs should relax and get
>  *  used to the idea." - Robert A. Heinlein  */



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] Building a web project under Draco.NET

2003-12-11 Thread Vincent Labatut

i don't have this problem because i'm not using devenv.com to compile my
projects, but the NAnt solution task,
it allows a manual mapping between web projects URLs and directories. Those
directories are relative to my NAnt build script.

i am not aware of a way to force devenv not to check for the projects URLs.
what u can do is use NAnt, or make Draco build
from a fixed directory and not a temporary one (see the previous mails for
this, it has recently been debated).

hope it helps,
vincent

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Nick
Robinson
Sent: jeudi 11 décembre 2003 15:05
To: [EMAIL PROTECTED];
[EMAIL PROTECTED]
Subject: [Draconet-users] Building a web project under Draco.NET


Hi,

The system I am working on involves a web solution.  We set Draco up a good
10 months ago and had everything working.  Unfortunately the build server
died recently.  Now we have set up the new Draco server, we cannot get a
successful build.  We have created a Virtual Directory underneath IIS.  We
have setup the web directory in Source Safe to always GET to this Virtual
Directory.  The problem is the solution never locates its dependancies,
because all of the projects the web solution uses end up being built in the
depths of the profile + temp directory structure.

We feel there is something we have overlooked - we didnt document each step
when we originally got the build working.  Has anybody else had a similar
problem, and can you tell us what we may have missed out in setting up the
server?

Thanks,


nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


Re: [Draconet-users] Building a web project under Draco.NET

2003-12-11 Thread Nick Robinson
Thanks Vincent.  We have had this working in the past without using the latest version 
of NAnt.  However upgrading to the latest could be a solution.

Nick.
"Vincent Labatut" <[EMAIL PROTECTED]> wrote:

> 
> i don't have this problem because i'm not using devenv.com to compile my
> projects, but the NAnt solution task,
> it allows a manual mapping between web projects URLs and directories. Those
> directories are relative to my NAnt build script.
> 
> i am not aware of a way to force devenv not to check for the projects URLs.
> what u can do is use NAnt, or make Draco build
> from a fixed directory and not a temporary one (see the previous mails for
> this, it has recently been debated).
> 
> hope it helps,
> vincent
> 
> -Original Message-
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of Nick
> Robinson
> Sent: jeudi 11 décembre 2003 15:05
> To: [EMAIL PROTECTED];
> [EMAIL PROTECTED]
> Subject: [Draconet-users] Building a web project under Draco.NET
> 
> 
> Hi,
> 
> The system I am working on involves a web solution.  We set Draco up a good
> 10 months ago and had everything working.  Unfortunately the build server
> died recently.  Now we have set up the new Draco server, we cannot get a
> successful build.  We have created a Virtual Directory underneath IIS.  We
> have setup the web directory in Source Safe to always GET to this Virtual
> Directory.  The problem is the solution never locates its dependancies,
> because all of the projects the web solution uses end up being built in the
> depths of the profile + temp directory structure.
> 
> We feel there is something we have overlooked - we didnt document each step
> when we originally got the build working.  Has anybody else had a similar
> problem, and can you tell us what we may have missed out in setting up the
> server?
> 
> Thanks,
> 
> 
> nick robinson
> site   : http://www.fromconcept.co.uk
> weblog : http://www.fromconcept.co.uk/weblog.aspx
> 
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-users
> 

nick robinson
site   : http://www.fromconcept.co.uk
weblog : http://www.fromconcept.co.uk/weblog.aspx




---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


[Draconet-users] Re: [Draconet-developers] Building a web project under Draco.NET

2003-12-11 Thread Matthew Mastracci
Use NAnt w/ the Solution task and specify a  element.  :)

On Thu, 2003-12-11 at 07:05, Nick Robinson wrote:
> Hi,
> 
> The system I am working on involves a web solution.  We set Draco up a good 10 
> months ago and had everything working.  Unfortunately the build server
> died recently.  Now we have set up the new Draco server, we cannot get a successful 
> build.  We have created a Virtual Directory underneath IIS.  We
> have setup the web directory in Source Safe to always GET to this Virtual Directory. 
>  The problem is the solution never locates its dependancies,
> because all of the projects the web solution uses end up being built in the depths 
> of the profile + temp directory structure.
> 
> We feel there is something we have overlooked - we didnt document each step when we 
> originally got the build working.  Has anybody else had a similar
> problem, and can you tell us what we may have missed out in setting up the server?
> 
> Thanks,
> 
> 
> nick robinson
> site   : http://www.fromconcept.co.uk
> weblog : http://www.fromconcept.co.uk/weblog.aspx
> 
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-developers mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-developers
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread David Reed
Mark,

I'm curious about your view of the dependencies.  'Cuz I'm about to get
dumped into a much wider WANned environment next year...  (Lil' startup
company sandbox, how little we knew ye.)  Who knows?  I may even lose
local control of my SCC if/when it gets moved into some big corporate
bomb shelter.

> Mark Griffiths wrote:
> Draco is the glue between SCC and build tools, ideally the build tool
> should know nothing
> about the SCC system (or Draco).  The dependency diagram should be
> something like:
> 
>SCC <- Draco -> Build Tool
> 
> I agree with you that Draco should remain very lean and sharp.  I
can't
> see it ever
> rivaling NAnt and MSBuild, it's just glue.

I see them as a triumvirate, not a linear set.  Draco watches SCC and
notifies its client, Build Tool, which gets what it needs from SCC when
Draco fires an event...

This is how we've currently got VSS, Draco and NAnt deployed:

SCC <-- Build Tool ---> Output
 ^ ^
 | |
 | |
 |--- Draco ---|

Why should the build widget be source control agnostic?  What makes that
"ideal"?  I'm open to education if there are good reasons that I'm
blissfully unaware of.  :)

Thanx.


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Mark Griffiths
Hi David 

> This is how we've currently got VSS, Draco and NAnt deployed:
> 
> SCC <-- Build Tool ---> Output
>  ^ ^
>  | |
>  | |
>  |--- Draco ---|
> 
> Why should the build widget be source control agnostic?  What 
> makes that "ideal"?  I'm open to education if there are good 
> reasons that I'm blissfully unaware of.  :)
> 

Good designs have minimal dependencies.  Draco _has_ to know about the SCC (to perform
polling), and _has_ to know about the build tool (so that it can be kicked off).

The build tool does not have to know about the SCC (since it should be capable of 
building
the sources out with the presence of the SCC).  If this dependency can be removed, then
the overall system becomes less entangled.

If you distribute source code, then you might also want to distribute your build files 
to
your customer to enable them to build the executables and run the tests.  It is not
desirable to distribute the potentially sensitive SCC config details.

Another benefit is that you specify the config of the SCC in one place - Draco's 
config.
If the build tool needs to talk to the SCC, then it will also need identical SCC config
information.  It would be too easy for two to get out of sync.

Of course you may also want to change SCC at some point.  If your build tool depends on
the SCC then you will need to choose a SCC supported by both Draco and the build tool. 
 In
the minimal dependencies ideal world, you only have to worry about Draco.

That is all off the top of my head, but mostly it is a gut feeling (brought about by
experience) that by minimising dependencies life gets easier.  I don't expect everyone 
to
agree with me!

Note however, that deficiencies in Draco might well force someone to have the build 
tool
also deal with the SCC.  For instance Draco does not allow SCC labels/tags to be 
dropped
or for version numbers to be stamped in AssemblyInfo.* files.  

> Thanx.
> 

Mark



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


[Draconet-users] Re: [Draconet-developers] Building a web project under Draco.NET

2003-12-11 Thread Matthew Mastracci
The other solution, Nick, is to open up your .csproj file and replace
"Web" with "Local" for the project type.  It will continue to build
correctly, but you will need to manually enable ASP.NET debugging and
enter the local URL for the project as the page to launch.

On Thu, 2003-12-11 at 07:05, Nick Robinson wrote:
> Hi,
> 
> The system I am working on involves a web solution.  We set Draco up a good 10 
> months ago and had everything working.  Unfortunately the build server
> died recently.  Now we have set up the new Draco server, we cannot get a successful 
> build.  We have created a Virtual Directory underneath IIS.  We
> have setup the web directory in Source Safe to always GET to this Virtual Directory. 
>  The problem is the solution never locates its dependancies,
> because all of the projects the web solution uses end up being built in the depths 
> of the profile + temp directory structure.
> 
> We feel there is something we have overlooked - we didnt document each step when we 
> originally got the build working.  Has anybody else had a similar
> problem, and can you tell us what we may have missed out in setting up the server?
> 
> Thanks,
> 
> 
> nick robinson
> site   : http://www.fromconcept.co.uk
> weblog : http://www.fromconcept.co.uk/weblog.aspx
> 
> 
> 
> 
> ---
> This SF.net email is sponsored by: IBM Linux Tutorials.
> Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
> Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
> Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
> ___
> Draconet-developers mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/draconet-developers
-- 
Matthew Mastracci <[EMAIL PROTECTED]>



---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread David Reed
Mark Griffiths wrote:

> That is all off the top of my head, but mostly it is a gut feeling
> (brought about by
> experience) that by minimising dependencies life gets easier.  I don't
> expect everyone to agree with me!
> 
> Note however, that deficiencies in Draco might well force someone to
have
> the build tool
> also deal with the SCC.  For instance Draco does not allow SCC
labels/tags
> to be dropped
> or for version numbers to be stamped in AssemblyInfo.* files.

Appreciate it, Mark.  That'll help load me up with ammunition when
restructuring time comes in January!


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


RE: [Draconet-users] RE: Having a Specific Working Copy Directory... instead of check i ng out to a different place each time?

2003-12-11 Thread Liam Davis-Mead
Greetings, all:

Let me say that I think this a very good idea; I've hacked on the Draco
source* to get this same functionality, albeit hardwired and
site-specific.  As part of our continuous build process, we run our unit
tests, which generate reports and dump them to a web server for later
perusal.  At the moment, we don't have a lot, and it wouldn't kill us to
do an entire, "pristine" build and test each time.  However, we foresee
in the (hopefully not-too-distant) future having enough test coverage to
make this approach infeasible, as eventually full builds will take
longer than the developers do between commits.

We have NAnt do our builds.  In order to specify source files, we
generate filesets from SharpDevelop project files using a custom task
(we also determine inter-assembly dependencies and build/test
accordingly).  These project files are of course versioned in source
control (SVN) alongside the source.  In this way, we explicitly list
every single source file that needs to be compiled into a particular
assembly (although, by generating the filesets from the #D projects, we
aren't repeating ourselves).  Now, this isn't terribly efficient for the
purposes of compilation, but it does allow the scripts to see what tests
can be left out for the purposes of expediting the build.  It also saves
us from any "**/*.cs" problems that may arise.  If an assembly's NUnit
results file is older than any of its sources, or any of its
dependencies' sources, we re-run the test.  Otherwise, we recycle the
test results into the new report.  We do want all assemblies' results
present in a single report, so we include these out-of-date results, but
every test is clearly timestamped so a reviewer can tell whether the
latest build reran any particular test.

Now obviously this sort of incremental build/test process only works in
the presence of persistent working copy.  Hence the hacked Draco running
on our build server.  It's admittedly a stopgap solution, so I merely
hardwired the output directory in BuildRunner.GetSource(), and modified
BuildRunner.BuildModule() not to remove the directory after it finishes.

What I'd like to see (and had intended to implement Real Soon Now), is a
configuration option that looks just like the one Mark proposed above,
although I don't know if I see it as being an svn-only option.  It seems
to me like it would apply to any SCC system, with the possible exception
of VSS.

Anyway, the persistent working copy has an additional advantage for us.
We're using a couple of custom NAnt tasks, which of course need to be
installed alongside NAnt's program files.  We have the source for these
tasks in SVN, and we have our build scripts in SVN, so we also have NAnt
itself in SVN (just the binaries).  This way, if I update one of our
tasks on my development box, I just build it, stick it in the NAnt
binary folder (the one in my working copy), and commit.  Now when the
build server checks out the latest changes, it gets the updated task.
It'll run it, too, provided its path can somehow point to that version
of NAnt, which it can easily do if the working directory is defined
ahead of time.  This saves us from having to deploy our build
environment (Yep, we've got NUnit and NDoc in there alongside NAnt...we
re-link its tasks against the latest versions).  The only thing anybody
needs in order to build (including the build server) is SVN access and
the framework SDK.  It's entirely self-contained, and we like that.


*Kudos to all the Chive people out there (Mark, Graeme, any others).
It's very clean.

Regards,
Liam Davis-Mead

P.S.

Mark Griffiths wrote:
> Note however, that deficiencies in Draco might well force someone to
have
> the build tool also deal with the SCC.  For instance Draco does not
allow
> SCC labels/tags to be dropped or for version numbers to be stamped in
> AssemblyInfo.* files.

Yes, we're currently doing that by having NAnt  to the svn client
in order to do tagging.  I can't really think of a better way to do
this, though.  I'm not convinced it really belongs in Draco, so I think
we're resigned to doing it directly.


-Original Message-
From: Mark Griffiths [mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 11, 2003 10:44 AM
To: [EMAIL PROTECTED]
Subject: RE: [Draconet-users] RE: Having a Specific Working Copy
Directory... instead of check i ng out to a different place each time?


---
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
___
Draconet-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/draconet-users


[Draconet-users] Another vote for scheduled polling (and rationale).

2003-12-11 Thread Liam Davis-Mead
Greetings, all:

In addition to being able to specify a persistent working copy for SCC
checkouts, I'd also like to see an absolute polling option (in addition
to the existing relative behaviour).  I mentioned in a previous message
that we prefer incremental builds for their speed.  Well, that's not to
say we don't ever want to do pristine builds.   We do.  Sort of.  =)
Our idealised process would go something like this:

Our Draco config file would have two modules:  one for incremental
builds, and one for complete builds (both of them poll the same
repository):


   
  Incremental
  60
  30
  
 master.build
 windows release debug tests build test
  
  
 http://svn.server/repository/trunk
 draco
 draco
 c:\draco.svn
  
   

   
  Deploy
  4:00
  30
  
 master.build
 windows release tests build test doc deploy
 

 
  
  
 http://svn.server/repository/trunk
 draco
 draco
  
   


Now, perhaps a bit of explanation is in order.  We have two types of
targets in our build scripts:  those that only set properties, and those
that actually do things (think nouns vs. verbs).  Examples used above of
the former are "windows," "release," "debug," and "tests."  Examples of
the latter are "build," "test," "doc," and "deploy."  Therefore, the
incremental build performs two actions:  it builds (it builds the
windows release and windows debug configurations, and also builds the
windows test assemblies) and tests (it runs NUnit against the windows
tests, which implicitly reference the debug configurations).

So the "Incremental" module polls SVN every minute for changes.  If it
finds any, it does a checkout (at which SVN, being a "proper" SCC
system, and a rather advanced one at that, only sends the diffs over the
wire), and forks off a build.  The build scripts know that when they
build, they only do so incrementally.  Furthermore, they know that when
they test, they also only do so incrementally.  Since the "Incremental"
module checks out to a persistent working copy, the build scripts will
be able to determine what needs to be re-built and/or re-tested.
Additionally, we point the build server's path to this "tools" folder of
this working copy, so that it always points at the latest binaries of
the build tools, along with any custom tasks or other customisations
that have been committed.

We'd also like the build server to handle our nightly release.  This
will occur at e.g. 4am, when, by the Mercy of God, no developers will be
committing changes and triggering incremental builds.  This build is
different than the incremental build.  For one, it is totally pristine.
We have quite a bit of time, so we'll check out a fresh copy, and build
and test from scratch.  We don't care what directory our working copy
ends up in, because a) it's _supposed_ to be a pristine build, and b)
our path is already pointing to the latest build tools in the trunk,
which the incremental build will have ensured is up-to-date for us.  The
second distinguishing feature of this build is that we set a property
which will trigger the build scripts to tag this build upon success.  We
also generate documentation and deploy the application (it's a web-app,
for all intents and purposes, so our clients will get instant
gratification if they happen to be using it at 4 am).  We've decided
against tagging every single draco build (which we're currently doing),
but we do want to tag the revisions that actually make it to live
deployment.

Now, I have seen it suggested that a way to accommodate our "nightly
release" scenario is to set the polling interval to 0 and schedule the
draco commandline client to force the build.  Well, what if it's a
holiday, and there've been no new commits in the last 24 hours?  Forcing
the build would result in the generation of two tags that contained
identical source, and a needless redeployment of the application.  We
therefore do want to preserve the "polling" nature of the existing
relative poll:  only fork a build if there have been changes since the
last time I checked.  We just want it to happen at a specific time.

"Well, okay.  Maybe we could just modify the commandline client not to
really force it."  Well, there may be times when we want to force a
redeploy (at some time other than 4 am).  We still want the build server
to act as the gatekeeper--in order to redeploy, I think we want to force
a re-test.  That is, no code sees the production server until the build
server has built it and tested it, and all tests have passed.
Therefore, the commandline client still has its purpose.  We'd like to
use it to kick off a manual deployment process.

I hope that illustrates the potential use for scheduled/absolute
polling, and how it would nicely complement the persistent working copy
idea.  The developers don't have to worry about testing before
deploying.  Hec