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 2F77DFDEC for ; Tue, 13 Aug 2013 14:13:57 +0000 (UTC) Received: (qmail 20131 invoked by uid 500); 13 Aug 2013 14:13:54 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 19773 invoked by uid 500); 13 Aug 2013 14:13:53 -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 19572 invoked by uid 99); 13 Aug 2013 14:13:52 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Aug 2013 14:13:51 +0000 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests= X-Spam-Check-By: apache.org Received-SPF: error (nike.apache.org: local policy) Received: from [208.70.89.128] (HELO cal3-mh450.smtproutes.com) (208.70.89.128) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Aug 2013 14:13:43 +0000 X-Katharion-ID: 1376403152.32741.cal3-mh450 Received: from vmjoan.corp.rotair.com ([216.224.33.200]) by cal3-mh450.smtproutes.com [(208.70.89.128)] with ESMTP via TCP; 13 Aug 2013 10:12:32 -0400 Received: from VMJUDI.corp.rotair.com ([192.168.1.14]) by vmjoan.corp.rotair.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 13 Aug 2013 10:12:31 -0400 Received: from VMJUDI.corp.rotair.com ([fe80::b568:e419:acf8:105b]) by VMJudi.corp.rotair.com ([fe80::b568:e419:acf8:105b%12]) with mapi id 14.01.0438.000; Tue, 13 Aug 2013 10:12:31 -0400 From: John Maher To: Ryan Schmidt CC: Subversion Users Subject: RE: Strange behavior Thread-Topic: Strange behavior Thread-Index: Ac6VJbiN2Ng5W3l4S6Gs0v8kwm1TGwAL0ckAAAeXBvD//9cagP/7/knggAjL3oD//y4csA== Date: Tue, 13 Aug 2013 14:12:30 +0000 Message-ID: <910250F21FAA2A4E8F72DD21EA780766090607AD@VMJudi.corp.rotair.com> References: <910250F21FAA2A4E8F72DD21EA7807660905D39A@VMJudi.corp.rotair.com> <293BE2C1-563D-4167-BA09-51619A34F794@ryandesign.com> <910250F21FAA2A4E8F72DD21EA7807660905D3D7@VMJudi.corp.rotair.com> <8FF220C7-1456-41B7-8FE9-36EDBE626423@ryandesign.com> <910250F21FAA2A4E8F72DD21EA7807660905D6F9@VMJudi.corp.rotair.com> <22207A95-7A58-4A08-9F05-D93D0B873AC1@ryandesign.com> In-Reply-To: <22207A95-7A58-4A08-9F05-D93D0B873AC1@ryandesign.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.168.1.75] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginalArrivalTime: 13 Aug 2013 14:12:31.0952 (UTC) FILETIME=[26A47500:01CE982F] X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Flag: NO X-Old-Spam-Status: No, score=-2.6 required=7.0 tests=BAYES_00,AWL Thanks Ryan. I learned a lot from your reply. Namely the global-ignores a= re really local global-ignores and I have to copy the config file over to a= nyone who may import. I also appreciate your description of the in-place i= mport. I like the idea of being able to un-add a file. That allows you to= experiment with wildcards without fear of damaging the repository. Adding= a file to the repository that you do not wish can be considered damaging i= f it guarantees a merge conflict every time. Thanks again JM -----Original Message----- From: Ryan Schmidt [mailto:subversion-2012c@ryandesign.com]=20 Sent: Monday, August 12, 2013 5:25 PM To: John Maher Cc: Subversion Users Subject: Re: Strange behavior On Aug 12, 2013, at 09:17, John Maher wrote: > Thanks for your help, but I still do not know how to get this to work. P= erhaps I should give a little background. The project that I mentioned in = my original post was a test project created just to learn how to get subver= sion to work. The production code that I wish to put in one repository res= ides in 62 directories that have over 2000 files in them of which only some= of them can be included otherwise merging becomes impossible. The whole p= oint of this exercise is to get merging to work since it causes unnecessary= difficultly to try to separate new features with bug fixes in a single bra= nch. But this is all I could get to work. Unfortunately no matter how muc= h I read (I read the first half of the book twice) and how much I checkout = and commit the tool fails to work for me. I'll let others address your merging questions, since I read the book befor= e Subversion 1.5 was released, when merge tracking was introduced, which ha= s simplified merging considerably. > And the only reason I have been complaining about the documentation is ho= ping to point out areas where it is very unclear and misleading. Anyone wh= o knows how to use the tool will never catch on to the poorly written areas= of the documentation, they are biased. You NEED someone who doesn't know = how to use the tool to indicate areas that need to be addressed. I totally agree, and please continue doing this. I did originally learn Sub= version by reading the book, so that was the basis for my praise of it, but= I have learned many more things by reading years of messages on this list = so sometimes it's hard for me to recall where a particular bit of knowledge= came from.=20 > Now the two suggestions I have are auto properties and in place import. = The links provided do not relate to my situation. I think when I said auto-props, I meant global-ignores. Sorry about that. T= hey're related in that they're both considered when importing. I think I se= e why I said that: you wrote: > Does import work with the ignore property? It mentions it in the help, b= ut I do not know if the help is wrong. If properties need to be applied t= o a working directory how do I use them with the import command BEFORE a wo= rking copy exists? I was confusing the svn:ignore property with the global-ignores config file= setting. The svn:ignore property is applied to a directory so that files i= nside it might be ignored (and which affects all users who might check out = a working copy of this directory), and yes, that has to happen in a working= copy. The global-ignores setting in your Subversion config file has a simi= lar function but affects all working copies and import actions you perform,= regardless what server is involved, and affects only you. > The provided link indicates properties that get set DURING the import. I= need to ignore files BEFORE the import. Like I originally stated, I need = to import SOME files. Importing compiler generated files OR user settings = causes problem and makes merging impossible thereby defeating some of the b= enefits of using subversion. If this method will solve this problem can yo= u provide me with a link indicating how to do this? I can not find anythin= g in the book nor the provided link. If you could give me some keywords to= search for that would help also. I tried searching and all I find is ques= tions relating to different actions. >=20 > I looked at the import command in the book and with the svn help command = and could not see how to use the svn:ignore. The import-in-place command w= orks on a single file. That would indicate I would need to issue the comma= nd hundreds of times. Are you sure this is the only way? It would seem od= d that this toll does not provide a way to import an enterprise level appli= cation without ignoring the compiler generated files. The in-place import does not operate on a single file; it is a procedure fo= r importing any number of items within a directory. The example in the FAQ = showed how to do an in-place import of four files in /etc. I'll try to expl= ain in more detail. Let's say you have a directory of original files, and a repository you want= to import them into. You want to import some files but not others. Maybe y= ou want to set properties on some files, such as MIME types or line ending = styles. =3D=3D Normal Import =3D=3D With a normal import, you run a single command "svn import" and the content= s of the directory are imported into the repository. While doing so, Subver= sion considers your global-ignores (to decide which files not to import) an= d your auto-props (to decide what properties to apply to files that are imp= orted), but there is no opportunity to inspect the results of that consider= ation before the files are committed to the repository. Once a normal import is completed, your original directory is untouched. To= get a working copy that you can perform additional Subversion operations i= n, you have to check it out from the repository, and then usually delete yo= ur original directory. But if there are any files in the original directory= that you did not import, but that you still want to have in the new workin= g copy, you have to manually move them over. If what got imported wasn't what you wanted, you have to clean it up later = in the working copy -- "svn rm" files you didn't mean to import; "svn add" = files you wanted to import but forgot; "svn mv" files around -- or "svn rm"= the entire imported directory and try again, or maybe even delete the whol= e repository and start over if that's what you want (and it might be, if yo= u imported huge files that you didn't need, since "svn rm" won't recover th= e space they used, or confidential files, since otherwise they'll forever b= e in the history). In my opinion, "svn import" is ok for importing small collections of files,= where you want to import everything (or are sure your global-ignores cover= every file you don't want to import) and don't care about properties (or a= re sure your auto-props cover every situation). For larger or more complica= ted imports, I choose the in-place import method. =3D=3D In-Place Import =3D=3D Instead of "svn import", I often prefer and in-place import. In this method= , you first "svn mkdir" an empty directory in the repository where your fil= es will go. Then you "svn co" this directory on top of your directory of or= iginal files, thereby transforming it into a working copy with unversioned = files. You can then "svn add" files you want to import. If you add a file y= ou didn't want (perhaps by running "svn add *") you can "svn revert" the fi= le to essentially "un-add" it. You can "svn ps" to set additional propertie= s. (Perhaps you want to set "svn:ignore" on some directories.) You haven't = committed anything yet, except for the creation of the empty directory. You= can continue to modify your pending commit as desired, using "svn st" as o= ften as you like to inspect what will be committed, and finally "svn ci" wh= en ready to commit it. And as noted, your original directory of files has *become* the working cop= y, which is often what people want anyway. The FAQ entry on in-place import is pretty limited, I concede. I assume tha= t since it is a FAQ entry it is not in the book. I would like to see the in= -place import method described in greater detail, in the book, replacing th= e FAQ entry.