<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:st1 = 
"urn:schemas-microsoft-com:office:smarttags"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3086" name=GENERATOR><o:SmartTagType 
name="place" 
namespaceuri="urn:schemas-microsoft-com:office:smarttags"></o:SmartTagType><!--[if !mso]>
<STYLE>st1\:* {
        BEHAVIOR: url(#default#ieooui)
}
</STYLE>
<![endif]-->
<STYLE>@page Section1 {size: 21.0cm 842.0pt; margin: 72.0pt 89.85pt 72.0pt 89.85pt; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
P.MsoAutoSig {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoAutoSig {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoAutoSig {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
SPAN.EmailStyle17 {
        COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal-compose
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV dir=ltr align=left><SPAN class=762413022-25092007><FONT face=Arial 
color=#0000ff size=2>If you like VSS but want to have a real db backend, you 
might want to look at JEDI Version Control System <A 
href="http://jedivcs.sourceforge.net/">http://jedivcs.sourceforge.net/</A>, an 
Open Source project.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=762413022-25092007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=762413022-25092007><FONT face=Arial 
color=#0000ff size=2>Cheers,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=762413022-25092007><FONT face=Arial 
color=#0000ff size=2>Kuet-Fung</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> delphi-bounces@delphi.org.nz 
  [mailto:delphi-bounces@delphi.org.nz] <B>On Behalf Of </B>David 
  Brennan<BR><B>Sent:</B> Wednesday, 26 September 2007 10:12<BR><B>To:</B> 'NZ 
  Borland Developers Group - Delphi List'<BR><B>Subject:</B> [DUG] Source 
  Control - Sharing files between projects<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV class=Section1>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hi,<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I&#8217;m interested in hearing how 
  people use their source control. <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">We currently use Visual SourceSafe 
  (VSS) which it turns out (after some comparison with other options) is quite 
  nice in terms of core feature set. However is isn&#8217;t a true database with 
  atomic commits so there is that constant risk of database corruption if a 
  network connection dies. We&#8217;ve been pretty luck so far but we have had one 
  fairly minor scare. It also lacks strong support for branching and changeset 
  type changes. So I can certainly see benefits in moving to a more powerful 
  tool. The problem is that the alternatives all seem to be missing one or more 
  VSS features. For example I don&#8217;t like Subversion/CVS because their lack of 
  explicit checkouts means you can&#8217;t tell which developers are working on a 
  particular file (unless you use Subversion locks but then only one developer 
  can edit the file at once, unlike VSS&#8217;s multiple 
  checkouts).<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">So the current favourite is 
  probably Perforce. I know several companies on DUG (most notably Accredo) use 
  and love Perforce. It looks great. Costs a bit but we can probably handle 
  that. The one feature it appears to be missing is Shared Files. To explain, 
  VSS allows you to share a file between multiple folders. We have maybe a dozen 
  <st1:place w:st="on">Delphi</st1:place> projects and most of our source files 
  are used by more than one project. That&#8217;s fine, we put each project into a 
  different VSS folder and share the files to the projects which require them. 
  Unfortunately this appears to be a VSS specific 
  ability.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">So the 
  questions:<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">1. Does anyone know how to 
  reliably achieve similar shared file between folders functionality in 
  Perforce? <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">2. Most development companies must 
  have similar shared source files. How do you structure your projects and 
  source files? (Note: I am talking about source files used by projects here, 
  not files which are compiled into VCL packages) <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Some thoughts on question 
  2:<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">One option is to just put all 
  files into a single directory. No need to share now! However this means that 
  projects could easily end up compiling in files you don&#8217;t think they are (or 
  should be) using because <st1:place w:st="on">Delphi</st1:place> will always 
  find the file. With our current separate folders scheme there is some control 
  and you can be fairly sure whether a project is or is not using a source 
  file.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Another option would be to put the 
  projects in one directory, the source files in one or more other directories, 
  and then get the projects to reference each source file by relative path. This 
  way each project will only be able to compile in files which are specifically 
  referenced in the project file so you can easily check which files are being 
  used. The downside of this (and the previous option too) is that each project 
  is directly sharing the files with the others. So if you are making multiple 
  changes in one project over the period of a week or so then it quite probable 
  that none of your other projects will compile until you are finished because 
  they will be trying to compile in your changed files. This is particularly 
  frustrating if you need to make a small unrelated change to another project 
  midway through the week. <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">So&#8230; what&#8217;s a developer to do!? 
  <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Cheers,<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">David.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN lang=EN-NZ 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoAutoSig><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN lang=EN-NZ 
  style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P></DIV></BLOCKQUOTE>
<p><span style="font-family:'Arial';font-size:8pt; color:#808080;">CONFIDENTIALITY: This email (including any attachments) may contain confidential, proprietary and privileged information, and unauthorised disclosure or use is prohibited.  If you received this email in error, please notify the sender and delete this email from your system.</span></p>
<p><span style="font-family:'Arial';font-size:8pt; color:#808080;">&nbsp;</span></p></BODY></HTML>