Return-Path: X-Original-To: apmail-subversion-users-archive@minotaur.apache.org Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5FD301909D for ; Wed, 30 Mar 2016 05:43:45 +0000 (UTC) Received: (qmail 18302 invoked by uid 500); 30 Mar 2016 05:43:39 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 18270 invoked by uid 500); 30 Mar 2016 05:43:39 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 18260 invoked by uid 99); 30 Mar 2016 05:43:39 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Mar 2016 05:43:39 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 6EF3EC031B for ; Wed, 30 Mar 2016 05:43:38 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.198 X-Spam-Level: * X-Spam-Status: No, score=1.198 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=tibco.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id Kh-bVzENr9MI for ; Wed, 30 Mar 2016 05:43:35 +0000 (UTC) Received: from mail-io0-f182.google.com (mail-io0-f182.google.com [209.85.223.182]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 968CE5F47B for ; Wed, 30 Mar 2016 05:43:34 +0000 (UTC) Received: by mail-io0-f182.google.com with SMTP id e3so52967327ioa.1 for ; Tue, 29 Mar 2016 22:43:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tibco.com; s=tibcogoogle; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=SutZDfvkRAyDfY54me2MGzzLo8YfnjzgQXbgdZ6/Hrc=; b=EwJwgY08RY3qYuk4TAV/xUmzZaU42qc5CO3mC5vB2Rk700STWDS9C4w2gXSDdxZZzG +kLnNKWI+/jVZ3COv2gyXw/8mPx2kVz+HlROVCGcltOcRhjWMQto8M6/gkHYjHEgT5m3 HVGmu614vrTUm5M/HhdpG7yyWCLsQPDYoFAjA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=SutZDfvkRAyDfY54me2MGzzLo8YfnjzgQXbgdZ6/Hrc=; b=GiArh9E7ODGOeiZPFpPMMfHUuc99un1tCZsmr8GNnYnpp9d2zJ1ryZhobAOAhNCPMo PWf/NrZut1TwhEh3pdwd7+XA4M1G3QokEBTxOQOatLFmJDMsKUTO8GCTiiv0FQ+e0ESr RUP5k9wqOUXpXcbMdy/sAsGv3iN+X8da1G5xJjBXJ6lqo4Q1l16fMyZ6acRBMeEW7iEn wLVjKHpXpFhcl+ZJwB5eOqzZH4Bu5GWtEck6xSYzK0Zuuh4f4VvTYBRbRsh9JHOwhB1i kzEE/Z7hRs8lOWfQ1sS2JVaKZV7PvcWN/upQTU6z9il8MTYf8Fe2hb1RB/xd9HScMaof NAFA== X-Gm-Message-State: AD7BkJJGQ96neoTLZbFpKVUUBMqq6dnmtoquq3AoFjNXhxwkahODQuGjT33Ry05TJOUoMkJ0kXSUg/cIqXUF3Pvw X-Received: by 10.107.132.149 with SMTP id o21mr6643497ioi.118.1459316607582; Tue, 29 Mar 2016 22:43:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.12.143 with HTTP; Tue, 29 Mar 2016 22:43:08 -0700 (PDT) In-Reply-To: References: From: Eric Johnson Date: Tue, 29 Mar 2016 22:43:08 -0700 Message-ID: Subject: Re: SVN compatibility question To: Eric Ahlstrom Cc: "users@subversion.apache.org" Content-Type: multipart/alternative; boundary=001a113f389e029d8a052f3da083 --001a113f389e029d8a052f3da083 Content-Type: text/plain; charset=UTF-8 That's an interesting problem you describe. I'm not familiar with SolidWorks, but you provide enough information to take some guesses. Subversion uses an "optimistic lock" design approach which might trigger some of the problems you're seeing. You say you wish to "prevent" users from editing the same file at the same time, but Subversion usually doesn't prevent people from working on the same files at the same time. Compounding that, it sounds like the SolidWorks project changes many files at the same time. This means that not only can you not prevent users from making those changes, the SolidWorks users don't even necessarily know which files on disk will change for any particular change they make in the program. So if you use Subversion to share changes to files, you may get an odd combination of people over-writing other people's changes, and changes to files that appear independent, but turn out to be contradictory. (This happens with source code all the time, but is much easier to resolve, it sounds like). To sidestep the optimistic lock problem, perhaps adopt a convention where you have a "semaphore" file. Use Subversion's pessimistic lock capability ( http://svnbook.red-bean.com/en/1.7/svn.advanced.locking.html). People shouldn't work on a project unless they can get a pessimistic lock on the project. This will require training your users.... In addition to that, it sounds like SolidWorks is completely oblivious to Subversion - so if it goes and renames or changes files, it doesn't perform the Subversion actions. Particularly if SW does a lot of renaming, this will cause problems, because then the users will have to go and do fix-up operations with the Subversion working copy - deleting files here and there. A quick browse of the internet suggests that using Subversion (TortoiseSVN) is likely going to be painful, unless you figure out the corner cases, and train your users to recognize them and fix them before they are a problem ( https://forum.solidworks.com/thread/48193). You've indicated that upgrading is a problem. Are you talking about upgrading the server, or the clients? You should be able to upgrade the server without too much worry. What version of the server are you running? That might be the place to start. Note that with the newer Subversion clients (starting 1.7, I think), Subversion only puts one ".svn" folder at the root of the working copy, instead of a ".svn" folder in each directory of the working copy. I'm guessing that SolidWorks expects a folder with few or no extraneous files in it - perhaps it is even modifying the contents of the .svn folder. To avoid that problem, make sure you check out a working copy that is a *parent* of the SW project folder, so that SW doesn't ever see/touch the .svn folder. From your description, I'm guessing this is part of the problem you've run into after upgrading clients to a newer version of Subversion. There's a different way of thinking about this problem that might work better for you, but it depends on your users. One option is to use Subversion to "snapshot" the work that people are doing, and commit those snapshots. For this you might find treating your "project" as a "vendor" folder instead. See http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html#svn.advanced.vendorbr.general . Using the vendoring approach, have people check out a working copy, but not do their work in that copy - instead do their work from a folder that is an *export* of the Subversion working copy (no extraneous .svn folders). Then when their work in SW is done, use svn_load_dirs to change the Subversion working copy to look just like the SW project folder. Then commit that. Then have the next person check out the latest version of the working copy, export into a clean folder, and make their changes. Truly a pain, though, so probably a last resort. This approach might be useful for learning how SW changes files, so you can train people on what is happening, though. My suggestions, summarized: - Upgrade your server (what version are you at now?) - this shouldn't affect clients, except possibly to make everything work better. - Upgrade your clients, but *make sure* your users check out working copies at the parent folder of the SW project, not the SW folder itself. This may require reorganizing the directory structure of the repository so that you can check out the parent folder without grabbing too much extra stuff. - Identify and train your users on the various scenarios that they will encounter. Hopefully that gives you some clues. Good luck! Eric. On Tue, Mar 29, 2016 at 10:53 AM, Eric Ahlstrom wrote: > To whom it may concern, > > Sorry, I'm not a software developer so this message is not following the > protocol for reporting bugs. Our company primarily deals with aircraft > electronics integration. Software is a small part of our operations and > our people have used Tortoise SVN successfully for years in that area. > > Our hardware department uses a popular CAD package called SolidWorks. > Normally, this package allows us to build and document assemblies with > parts automatically populating BOM's and reporting to multiple assemblies. > In a standard file system, we can rename files, move them from one > directory to another, restructure common part files, etc. all while > SolidWorks maintains the links between these files and their associations. > > In an effort to maintain version control and prevent multiple users from > editing the same file at the same time, we migrated all of our CAD files to > Tortoise SVN. Now our assemblies routinely crash, hardware loses its > associations randomly, BOM's collapse and have to be rebuilt, and > renaming/reorganizing files requires incredibly complex work arounds. > Essentially, a CAD user has to know every file association in advance of a > move, open every association, and copy/rename/edit/delete dozens of files > in specific combination and order. Often, 100 hour assemblies are > corrupted and have to be remade from scratch. > > We are running 1.6.16.21511 and any attempts to upgrade to a newer version > have crashed everything. Obviously, this version is out of date and at > some point will no longer be available for new users. Please do not say we > simply need to upgrade. We need some input from a party that understands > how SolidWorks manipulates files. > > It seems that SolidWorks is fundamentally incompatible with SVN. If > possible, could the SVN community tell us if this is the case? Does anyone > know of another organization using SVN for SolidWorks PDM (product data > management)? > > Thank you, > Eric Ahlstrom > R&D Manager > Borsight Inc. 3525 Airport Road, Ogden, UT 84405 > Mobile: (*775) 302-6762 <775%29%20302-6762>* Fax: (801) 409-1487 > eric.ahlstrom@Borsight.com http://www.Borsight.com > > This e-mail is proprietary, privileged or otherwise protected by law. The information > is solely intended for the named addressee (or a person responsible for > delivering it to the addressee). If you are not the intended recipient of > this message, you are not authorized to read, print, retain, copy or > disseminate this message or any part of it. If you have received this > e-mail in error, please notify the sender immediately by return e-mail and > delete it from your computer. > --001a113f389e029d8a052f3da083 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
That's an interesting problem you describe. I'm no= t familiar with SolidWorks, but you provide enough information to take some= guesses.

Subversion uses an "optimistic lock"= design approach which might trigger some of the problems you're seeing= . You say you wish to "prevent" users from editing the same file = at the same time, but Subversion usually doesn't prevent people from wo= rking on the same files at the same time. Compounding that, it sounds like = the SolidWorks project changes many files at the same time. This means that= not only can you not prevent users from making those changes, the SolidWor= ks users don't even necessarily know which files on disk will change fo= r any particular change they make in the program. So if you use Subversion = to share changes to files, you may get an odd combination of people over-wr= iting other people's changes, and changes to files that appear independ= ent, but turn out to be contradictory. (This happens with source code all t= he time, but is much easier to resolve, it sounds like).

To sidestep the optimistic lock problem, perhaps adopt a convention = where you have a "semaphore" file. Use Subversion's pessimist= ic lock capability (http://svnbook.red-bean.com/en/1.7/svn.advanced.locking.h= tml). People shouldn't work on a project unless they can get a pess= imistic lock on the project. This will require training your users....

In addition to that, it sounds like SolidWorks is comp= letely oblivious to Subversion - so if it goes and renames or changes files= , it doesn't perform the Subversion actions. Particularly if SW does a = lot of renaming, this will cause problems, because then the users will have= to go and do fix-up operations with the Subversion working copy - deleting= files here and there.

A quick browse of the inter= net suggests that using Subversion (TortoiseSVN) is likely going to be pain= ful, unless you figure out the corner cases, and train your users to recogn= ize them and fix them before they are a problem (https://forum.solidworks.com/thread/48193).=

You've indicated that upgrading is a problem.= Are you talking about upgrading the server, or the clients? You should be = able to upgrade the server without too much worry. What version of the serv= er are you running? That might be the place to start.

<= div>Note that with the newer Subversion clients (starting 1.7, I think), Su= bversion only puts one ".svn" folder at the root of the working c= opy, instead of a ".svn" folder in each directory of the working = copy. I'm guessing that SolidWorks expects a folder with few or no extr= aneous files in it - perhaps it is even modifying the contents of the .svn = folder. To avoid that problem, make sure you check out a working copy that = is a *parent* of the SW project folder, so that SW doesn't ever see/tou= ch the .svn folder. From your description, I'm guessing this is part of= the problem you've run into after upgrading clients to a newer version= of Subversion.

There's a different way of thi= nking about this problem that might work better for you, but it depends on = your users.

One option is to use Subversion to &qu= ot;snapshot" the work that people are doing, and commit those snapshot= s. For this you might find treating your "project" as a "ven= dor" folder instead. See=C2=A0http://svnb= ook.red-bean.com/en/1.7/svn.advanced.vendorbr.html#svn.advanced.vendorbr.ge= neral .

Using the vendoring approach, have peo= ple check out a working copy, but not do their work in that copy - instead = do their work from a folder that is an export=C2=A0of the Subversion= working copy (no extraneous .svn folders). Then when their work in SW is d= one, use svn_load_dirs to change the Subversion working copy to look just l= ike the SW project folder. Then commit that. Then have the next person chec= k out the latest version of the working copy, export into a clean folder, a= nd make their changes. Truly a pain, though, so probably a last resort. Thi= s approach might be useful for learning how SW changes files, so you can tr= ain people on what is happening, though.

My sugges= tions, summarized:
  • Upgrade your server (what version are = you at now?) - this shouldn't affect clients, except possibly to make e= verything work better.
  • Upgrade your clients, but make sure= =C2=A0your users check out working copies at the parent folder of the SW pr= oject, not the SW folder itself. This may require reorganizing the director= y structure of the repository so that you can check out the parent folder w= ithout grabbing too much extra stuff.
  • Identify and train your users= on the various scenarios that they will encounter.
Hop= efully that gives you some clues.

Good luck!
=

Eric.

On Tue, Mar 29, 2016 at 10:53 AM, Eric Ahlstrom <eric.ahlstrom@borsight.com> wrote:
To whom it may concern,

Sorry, I= 9;m not a software developer so this message is not following the protocol = for reporting bugs.=C2=A0 Our company primarily deals with aircraft electro= nics integration.=C2=A0 Software is a small part of our operations and our = people have used Tortoise SVN successfully for years in that area.

<= /div>
Our hardware department uses a popular CAD package called SolidWorks.=C2= =A0 Normally, this package allows us to build and document assemblies with = parts automatically populating BOM's and reporting to multiple assembli= es.=C2=A0 In a standard file system, we can rename files, move them from on= e directory to another, restructure common part files, etc. all while Solid= Works maintains the links between these files and their associations.
=
In an effort to maintain version control and prevent multiple users f= rom editing the same file at the same time, we migrated all of our CAD file= s to Tortoise SVN.=C2=A0 Now our assemblies routinely crash, hardware loses= its associations randomly, BOM's collapse and have to be rebuilt, and = renaming/reorganizing files requires incredibly complex work arounds.=C2=A0= Essentially, a CAD user has to know every file association in advance of a= move, open every association, and copy/rename/edit/delete dozens of files = in specific combination and order.=C2=A0 Often, 100 hour assemblies are cor= rupted and have to be remade from scratch.

We are running 1.6.16= .21511 and any attempts to upgrade to a newer version have crashed everythi= ng.=C2=A0 Obviously, this version is out of date and at some point will no = longer be available for new users.=C2=A0 Please do not say we simply need t= o upgrade.=C2=A0 We need some input from a party that understands how Solid= Works manipulates files.

It seems that SolidWorks is fundamental= ly incompatible with SVN.=C2=A0 If possible, could the SVN community tell u= s if this is the case?=C2=A0 Does anyone know of another organization using= SVN for SolidWorks PDM (product data management)?

Thank you,
Eric Ahl= strom
R&D Manager
Borsight Inc.=C2=A03525 Airpor= t Road, =C2=A0Ogden, UT 84405
Mobile:=C2=A0(775) 302-6762=C2=A0 Fax:=C2=A0(801) 409-1487
eric.ahl= strom@Borsight.com=C2=A0http://www.Borsight.com=C2=A0=
This e-mail is proprietary, privileged or otherwise pr= otected by law. The=C2=A0information is solely inte= nded for the named addressee (or a person=C2=A0resp= onsible for delivering it to the addressee). If you are not the intended=C2= =A0recipient of this message, you are not authorize= d to read, print, retain,=C2=A0copy or disseminate = this message or any part of it. If you have received=C2=A0this e-mail in error, please notify the sender immediately by return= e-mail=C2=A0and delete it from your computer.

--001a113f389e029d8a052f3da083--