Re: Pipe symbol causing checksum error
Daniel, Thanks for coming back to me. Error message is: svn: Commit failed (details follow): svn: Checksum mismatch for '/path/Constants.java''; expected: 'c55ba3831fe4b9c84ed8cfa28a5b5880', actual: '8f0dd12fec0caa78fda83e5251445dad' (I get the same error when checking in from an IDE as well as the command line but I guess the actual command and API will be the same). Using FSFS 'svnadmin verify' doesn't find any errors. Charles On 7 September 2012 18:23, Daniel Shahaf d...@daniel.shahaf.name wrote: Can you copy and paste your error message to the list please? (set 'LC_ALL=C' in your environment to get it in English, if needed) Do you use FSFS or BDB? Does 'svnadmin verify' find any errors? (it might be interesting to try 'svnadmin verify' with a 1.7 client, though I think some changes haven't been included in a release yet) Charles Humble wrote on Fri, Sep 07, 2012 at 17:39:46 +0100: I recently modified a constants file for my Java app to change the separator used for the title bar in the browser, thus: /** * Separator for title bar */ public static final String TITLE_BAR_SEPARATOR = | ; When I try and chec the file into our SVN repository I get a checksum message. If I change the constant to anything else it works fine. I'm running svn --version 1.6.17 on an OS X Lion server if it helps. Anyone aware of this? Any workaround suggestion? Charles
RE : SVN 1.6: What is the maximum size for a commit?
Thanks a lot for you help. My server is in a 32-bit mode. Anyway, I'll take a look for LimitRequestBody option in apache conf. Regards. De : Andy Levy [andy.l...@gmail.com] Date d'envoi : vendredi 7 septembre 2012 17:52 À : CHAZAL Julien Cc : users@subversion.apache.org Objet : Re: SVN 1.6: What is the maximum size for a commit? On Fri, Sep 7, 2012 at 11:12 AM, CHAZAL Julien julien.cha...@atos.net wrote: Hi all, I manage a Subversion server (SVN 1.6.9, FSFS storage mode, set up on a Linux Suse Enterprise Edition) and I usually encounter a problem when my users commit a set of folders which the size is more than 4 GB. The error message that appears is Revision file lacks trailing new line (obtained with TortoiseSvn client, with https protocol). I know how to resolve this issue, but I wonder why Subversion doesn't allow commits greater than 4 GB. So, is there somebody that knows the size limit for a commit? Is it due to HTTPS protocol or due to Subversion 1.6? It's possible you're running out of temp space on your server, or Apache is limiting the size of the commit - I don't think it's Subversion directly limiting you here. Look for a LimitRequestBody directive in your Apache configuration and bump the size up, or if you don't have the directive add it with a limit higher than 4GiB. Is your server 32-bit or 64-bit? If 64-bit, are Apache the Subversion modules compiled for 32-bit or 64-bit? If it's all 32-bit, I wonder if that's a factor as well. The below disclaimer is meaningless on a public mailing list. Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos ne pourra être engagée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être engagée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos group liability cannot be triggered for the message content. Although the sender endeavors to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted. Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos ne pourra être engagée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être engagée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos group liability cannot be triggered for the message content. Although the sender endeavors to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
SvnAdmin: impossible to load dump generated by cvs2svn
Hi all, http://www.atos.net I manage a Subversion server that has the following configuration : - SVN 1.6.9 - FSFS storage mode - Apache + mod_dav + subversion modules - Linux Suse Enterprise Edition 32-bit I have to perform a CVS to SVN migration. I use the tool cvs2svn to generate a dump file from my CVS server and I use the svnadmin command to load this dump file on my Subversion target server. I use a binary transfer mode with SFTP when I have to move a dump from my former CVS server to my SVN server. I did this operation for many CVS repositories and it works fine, except for ONE repository (size around 300 MB) where I encounter the following error: - 'vnadmin: Dump stream contains a malformed header (with no ':') at ' I tried to regenerate many times my dump file from cvs2svn tool. I checked the header of this dump fil and it sounds good (I compared it with other dump from cvs2svn tool). I took a look on the web and I find a command to clear the dump file obtained by cvs2svn, but anyway, it doesn't work too: I can't load this dump file. As I have ever said, the error above concern an only ONE cvs repository. Actually, I can load all others repositories from the same CVS server to the same SVN server by using the same commands and operations. You'll find below the commands I use to perform my migration : - CVS side: cvs2svn --dumpfile=DUMP_FILE.dump CVS_REPO --symbol-default=heuristic --encoding='latin1' --force-branch=ToPromote - SVN side: svnadmin load MY_REPO_PATH DUMP_FILE.dump Is there somebody know the reason why I encounter this error? Any idea about how to resolve this issue? Regards, Julien Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos ne pourra être engagée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être engagée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos group liability cannot be triggered for the message content. Although the sender endeavors to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
Re: RE : SVN 1.6: What is the maximum size for a commit?
Hi, On Mon, Sep 10, 2012 at 08:27:19AM +, CHAZAL Julien wrote: Thanks a lot for you help. My server is in a 32-bit mode. Anyway, I'll take a look for LimitRequestBody option in apache conf. Just to state the yet non-stated to make sure that matters are clear (many people may easily be unaware of that): a server being a 32bit OS should IN NO WAY result in I/O transfers of a heavy-weight I/O software being limited to 32bit, too (well, ideally..). That's what the difference between 64bit file I/O and actual 64bit OS was supposed to be for (the transition to 64bit file I/O was made quite a bit *before* actual 64bit OSes properly supporting 64bit *CPUs* were commonplace). IOW, this likely indicates that a 32bit type (i.e., a type limited/adhering to system-width) is erroneously being used somewhere within the transfer chain, rather than an actual 64bit type (see various stdint.h implementations for specifics) that's suitable for 64bit data transfers on a 32bit system as well. So much for the theory - now as to whether SVN transfers are supposed to qualify for heavy-weight I/O (i.e. whether that is a valid sufficiently frequent use case on 32bit platforms), that's obviously another matter ;) Andreas Mohr De : Andy Levy [andy.l...@gmail.com] Date d'envoi : vendredi 7 septembre 2012 17:52 À : CHAZAL Julien Cc : users@subversion.apache.org Objet : Re: SVN 1.6: What is the maximum size for a commit? [...] Is your server 32-bit or 64-bit? If 64-bit, are Apache the Subversion modules compiled for 32-bit or 64-bit? If it's all 32-bit, I wonder if that's a factor as well. -- GNU/Linux. It's not the software that's free, it's you.
Re: SvnAdmin: impossible to load dump generated by cvs2svn
Julien, a dump file is designed to work with the commandline pipe. So it might be that the binary transport might have changed something. (if your sending os is different than suse) A safer way to transport it is to tar it before sending it over the wire: (1) cvs station $ tar czvf dump.tar.gz name of dumpfile Send the file via ftp binary. (2) svn station $ tar xzvf dump.tar.gz Import via svnadmin. If this still does not work, please send us the log files created by using redirects similiar to this: $ svnadmin load /path/to/target/repo dumpfile 2 /tmp/load.stderr /tmp/load.stdout Beste Grüße, kind regards, Volker Kopetzky vzk Beratung Germany Thailand smime.p7s Description: S/MIME cryptographic signature
AW: SvnAdmin: impossible to load dump generated by cvs2svn
Hi, Julien, Von: CHAZAL Julien [julien.cha...@atos.net] I manage a Subversion server that has the following configuration : - SVN 1.6.9 - FSFS storage mode - Apache + mod_dav + subversion modules - Linux Suse Enterprise Edition 32-bit I have to perform a CVS to SVN migration. I use the tool cvs2svn to generate a dump file from my CVS server and I use the svnadmin command to load this dump file on my Subversion target server. I use a binary transfer mode with SFTP when I have to move a dump from my former CVS server to my SVN server. I did this operation for many CVS repositories and it works fine, except for ONE repository (size around 300 MB) where I encounter the following error: - 'vnadmin: Dump stream contains a malformed header (with no ':') at ' I tried to regenerate many times my dump file from cvs2svn tool. I checked the header of this dump fil and it sounds good (I compared it with other dump from cvs2svn tool). I took a look on the web and I find a command to clear the dump file obtained by cvs2svn, but anyway, it doesn't work too: I can't load this dump file. As I have ever said, the error above concern an only ONE cvs repository. Actually, I can load all others repositories from the same CVS server to the same SVN server by using the same commands and operations. You'll find below the commands I use to perform my migration : - CVS side: cvs2svn --dumpfile=DUMP_FILE.dump CVS_REPO --symbol-default=heuristic --encoding='latin1' --force-branch=ToPromote - SVN side: svnadmin load MY_REPO_PATH DUMP_FILE.dump Is there somebody know the reason why I encounter this error? Any idea about how to resolve this issue? Just to exclude systematic dump corruption during the transfer between those 2 machines: Could you use md5sum or sha256sum or a similar tool to verify that the dump file is still identical on the second machine? Best regards Markus Schaber -- We software Automation. 3S-Smart Software Solutions GmbH Markus Schaber | Developer Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 | Fax +49-831-54031-50 Email: m.scha...@3s-software.com | Web: http://www.3s-software.com CoDeSys internet forum: http://forum.3s-software.com Download CoDeSys sample projects: http://www.3s-software.com/index.shtml?sample_projects Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915
Git smudge / Clean / Filter alike in Subversion ?
Hi all, I am looking for some Git smudge / clean capabilities in subversion to be able to clean code before pushing it into the repository, as long as filters do be able to diff binary files with for example some embedded tags. Here is FYI the Git documentation page that explain it exactly : http://git-scm.com/book/en/Customizing-Git-Git-Attributes Any help please ? Laurent.
RE: svnadmin
Thanks Chris, I appreciate the link, I'm still on chapter 2. Strange it describes creating a repository AFTER it explains properties and commands like diff. I read that link you posted but now I am confused about hooks. I see the hook directory get created when I create a repository locally. But there isn't any such directory in the repository created on a server (VisualSVN). I searched through the book using the keyword hooks and couldn't find any clue. 1) Can hooks be used on a non-local repository? 2) I read somewhere that a directory repository structure is not recommended for multi-user environments. Is this true? 3) If #2 is true then is it also true that svnadmin create is for single users ONLY? -Original Message- From: Chris Shelton [mailto:cshel...@shelton-family.net] Sent: Friday, September 07, 2012 3:59 PM To: John Maher Cc: users@subversion.apache.org Subject: Re: svnadmin John On Fri, Sep 7, 2012 at 3:47 PM, John Maher jo...@rotair.com wrote: Is svnadmin create limited to creating a local repository? Yes. If not then how do you use it for a URL? You don't. If so then is there a command for creating a repository via an URL? Or is this impossible? It is impossible to create a repository remotely. Read the book on repository creation: http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html svnadmin is a server side utility to create a repository within the local filesystem. chris
Re: Git smudge / Clean / Filter alike in Subversion ?
On Mon, Sep 10, 2012 at 03:38:10PM +0200, Laurent Alebarde wrote: Hi all, I am looking for some Git smudge / clean capabilities in subversion to be able to clean code before pushing it into the repository, as long as filters do be able to diff binary files with for example some embedded tags. Here is FYI the Git documentation page that explain it exactly : http://git-scm.com/book/en/Customizing-Git-Git-Attributes Any help please ? Laurent. See http://svnbook.red-bean.com/en/1.7/svn.forcvs.binary-and-trans.html and http://svnbook.red-bean.com/en/1.7/svn.advanced.externaldifftools.html Does that do what you want?
RE: svnadmin
Thanks Bob. I installed subversion edge but I don't know if it can help me or I just can't figure it out. I can't get it to find our repositories. It won't let me change the IP address which makes me think that it doesn't work with non-local repositories. I searched the forums (developer and admin) with the text existing repositories and found one post that didn't match my question but it didn't matter anyway because the post wasn't answered itself. I was thinking about writing an html or java wrapper because command line arguments are a thing of the past, forget about looking to the future. Then I thought that edge does this. If it doesn't then is there any thing else out there that may do this? For example I have to set the svn:ignore property on 44 modules, and that is only one project. We have other projects. Typing or editing the same command 44 times is a bit archaic. It would be nice to type it once and click on the modules that it applies to. I may write this myself because it would be quicker to write a small program than type or edit the same thing over and over again and hope I don't miss one. John -Original Message- From: Bob Archer [mailto:bob.arc...@amsi.com] Sent: Friday, September 07, 2012 4:03 PM To: Chris Shelton; John Maher Cc: users@subversion.apache.org Subject: RE: svnadmin John On Fri, Sep 7, 2012 at 3:47 PM, John Maher jo...@rotair.com wrote: Is svnadmin create limited to creating a local repository? Yes. If not then how do you use it for a URL? You don't. If so then is there a command for creating a repository via an URL? Or is this impossible? It is impossible to create a repository remotely. Well, strictly not true. If you have access to remote share you can create the repository on another machine. Read the book on repository creation: http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html svnadmin is a server side utility to create a repository within the local filesystem. John, if you use Subversion Edge it will allow you to create repos using the Web Admin UI as well. BOb
Re: svnadmin
On Mon, Sep 10, 2012 at 10:23 AM, John Maher jo...@rotair.com wrote: Thanks Bob. I installed subversion edge but I don't know if it can help me or I just can't figure it out. I can't get it to find our repositories. It won't let me change the IP address which makes me think that it doesn't work with non-local repositories. Subversion Edge is a server. It can find the local repositories on that you want it to expose. They have to be on local disk. It only looks in the folder you tell it the repositories are in. The IP address in SVN Edge is also from the local server. It is simply the local IP address whose network stats it will track. That is it. You configure the IP address of your server using the server OS. I searched the forums (developer and admin) with the text existing repositories and found one post that didn't match my question but it didn't matter anyway because the post wasn't answered itself. I was thinking about writing an html or java wrapper because command line arguments are a thing of the past, forget about looking to the future. Then I thought that edge does this. If it doesn't then is there any thing else out there that may do this? Does it do what exactly? For example I have to set the svn:ignore property on 44 modules, and that is only one project. We have other projects. svn:ignore is a property you set on paths within the repository. That is something you do using a SVN client on a checked out working copy. You then commit the property change to the repository after you set it. Typing or editing the same command 44 times is a bit archaic. It would be nice to type it once and click on the modules that it applies to. I may write this myself because it would be quicker to write a small program than type or edit the same thing over and over again and hope I don't miss one. I cannot tell from the thread what you are trying to do. If these are new repositories, then SVN Edge allows you to create repository templates that have content in them. So you can setup a specific structure including things like svn:ignore settings within the repository structure and then create a template so that as you create new repositories in the future they are already setup. The template can also include default set of hook scripts. -- Thanks Mark Phippard http://markphip.blogspot.com/
Re: general questions
Please keep replies on the mailing list. On Mon, Sep 10, 2012 at 11:21 AM, John Maher jo...@rotair.com wrote: Thanks Mark. ** ** Here’s what I am trying to do: learn subversion. To do this the best I could come up with is making some test projects and going through the commands to learn them. The problem I am having is that each step is making MORE questions than it answers. So in a nutshell here’s three things I am currently working on: ** ** **1) **Finding a client side gui. If you are on Windows, I would start with TortoiseSVN. If you use an IDE there are integrations like Subclipse for Eclipse and AnkhSVN for Visual Studio. **2) **Determining the use of local and server repositories. There is basically no such thing as a local repository. Repositories live on the server only. Clients checkout from the repository which creates a working copy. If you haven't, the place you should be starting is the book. It is an easy read. You should at least read the first two chapters as many times as needed to understand them. The rest can serve as a reference: http://svnbook.red-bean.com/en/1.7/index.html **3) **Prohibit programmers from stepping on each other’s ide settings. Not sure what the issue is, but usually you can avoid committing IDE setting files. It depends on the IDE. I like to commit my Eclipse settings and they can usually be setup in such a way that they work for everyone. **(1) **We are using VisualSVN Server so I don’t think we can use subversion edge. A client gui would greatly enhance productivity. VisualSVN Server and SVN Edge are both serves. So correct, you only need one of them. **(2) **Can you use hooks on server side repositories? Yes. Hooks live in the hooks folder of the repository on the server. I see no hooks directory on the server. Where are you looking? When you create a repository on the server, the repository folder should contain a folder called hooks. SVN Edge provides a web UI to manage the hooks. I think VisualSVN has something similar in its GUI. But you should also be able to access it via the server file system directly. A local repository has a hooks directory but I read somewhere that a directory based repository is not recommended for multi users and they should use a server. Is this true? Again, no idea what you mean by local repository. There is only one kind of repository. The protocol by which you access it can vary, but that is all. **(3) **There are some files that are part of each module that we don’t want in the repository. According to the book, I have to issue the same command on each directory which is not only tedious but error-prone. I will have to manually track each directory and hope I can regain my place after each and every distraction. Again, do not know what tool you are using. But usually the files you want to ignore are not contained in every folder. You can set some repository-independent ignores in the client configuration too. For example, you can ignore all files named *.dll or *.obj etc. This has to be configured on each client though. svn:ignore is superior because it lives in the repository and clients get it automatically when they checkout. -- Thanks Mark Phippard http://markphip.blogspot.com/
Re: svnadmin
On Sep 10, 2012, at 08:49, John Maher wrote: I read that link you posted but now I am confused about hooks. I see the hook directory get created when I create a repository locally. The only way to create a repository is locally, using the svnadmin create command (or using some sort of GUI that someone has written on top of svnadmin). If you want to create a repository on a server, make yourself be local to the server (using ssh or screen sharing or similar) and create it there. Or find a web-based Subversion administrative GUI and install that on your server; I'm given to understand that Subversion Edge contains such a web GUI. All repositories created using svnadmin create will contain all the required directories, including the hooks directory. $ svnadmin create foo $ find foo -type d foo foo/conf foo/db foo/db/revprops foo/db/revprops/0 foo/db/revs foo/db/revs/0 foo/db/transactions foo/db/txn-protorevs foo/hooks foo/locks $ The filesystem inside the repository starts out empty, of course, for you to fill with your data as desired. But there isn't any such directory in the repository created on a server (VisualSVN). I don't know what you mean by this. I'm also not familiar with VisualSVN. How did you verify that the repository on the server does not contain the hooks directory? You should be able to ssh or screenshare to the server and verify that its local filesystem has a hooks (and conf and db and locks) directory in the repository's directory. Perhaps you're not seeing the distinction between the repository directory on the server's hard drive (which contains those directories I listed above), and what you see when you look into a repository using commands like svn ls or svn checkout (which will show whatever it is you have stored in your repository)? I searched through the book using the keyword hooks and couldn't find any clue. 1)Can hooks be used on a non-local repository? The question is strange. Hook scripts run on the server. Doesn't matter whether the client accessing that server is running on the same computer as the server or on a computer halfway around the world. Users can perform actions on the repository from anywhere, and if the server has hook scripts set up for any of those actions, it will run those scripts locally on the server at the appropriate times. 2)I read somewhere that a directory repository structure is not recommended for multi-user environments. Is this true? I'm not sure what you mean. What is a directory repository structure? If you want to serve a collection of repositories from the same server with minimum configuration fuss, then all repositories should exist in a single directory on the server, not nested inside other subdirectories. That is to say, your directory structure on the server should look like: /path/to/svn/repo1 /path/to/svn/repo2 /path/to/svn/repo3 Not: /path/to/svn/repo1 /path/to/svn/foo/bar/repo2 /path/to/svn/baz/repo3 3)If #2 is true then is it also true that svnadmin create is for single users ONLY? svnadmin create is the only command that exists for creating repositories, therefore it is the correct command to use regardless of how those repositories will be used.
Re: general questions
Please keep replies on the mailing list. On Mon, Sep 10, 2012 at 12:02 PM, John Maher jo...@rotair.com wrote: Thanks again Mark, you have been helpful. Let me clear some things up.** ** ** ** Let me clear up by what I mean as “local” repository. We have a svn server which has repositories on it. It serves us files to our local directories when we ask for them using VisualSVN Server. I also created some repositories “locally” with svnadmin create. The repositories are on the same machine, on the same drive as the working copy and I can get a working copy without any network access and do not need VisualSVN Server, Subversion Edge or any other server to create or access it. Sure you can say the server is MyMachineName and the client is MyMachineName. However the repositories ARE different because svnadmin works with one type and fails with another. Perhaps you never used the second type. If you have what would you call it to differentiate between them? They are just repositories. You can say you are accessing one via file:// protocol and one via http:// protocol if you like. svnadmin only operates directly on the file system via the OS. It does not talk to anything except the bytes on disk. So it needs access to those bytes. The normal thing to do is to run svnadmin on the server where you want your repositories to live. You login to the server directly using something like an SSH terminal or a Remote Desktop. When you run a GUI on your server like VisualSVN or SVN Edge, those tools are simply providing a way to run the svnadmin command via some other remote access interface such as your web browser. I am still wondering about the issue I read somewhere it said you should use a what-ever-you-want-to-call-it repository via a URL and a server product (like VisualSVN Server) instead of a what-ever-you-want-to-call-it repository on a network drive without using a server product (using svnadmin create) in a multi-user environment. You can create repositories on a network share and access them via file:// protocol but you shouldn't. All users need full read/write access to the repository files if you do this, which means they can accidentally delete or corrupt those files. Of course they can also do so for malicious/intentional reasons. Accessing the repository this way will also typically be significantly slower than accessing them via a server. And we have numerous files we need to ignore. We are using visual studio. We have a project which consists of 44 dlls. Each dll is in its own directory and is a project in and of itself. Each directory contains files and directories which need to be ignored when a new user creates a working copy so the user’s settings don’t get stepped on. So that means entering the svn:ignore command 44 times at least for this one project alone. I was hoping for a better way. You can setup clients to ignore the DLL extensions always, but that has to be done on each client. Setting svn:ignore is the better way and it only has to be done by one user and then committed to the repository for all others. We do have TortiseSVN. The documentation is quite poor with this product. Well, I disagree. At least compared to every other SVN client, they have the best and most complete documentation. I cannot speak to the commercial clients, maybe some of them are better but I doubt it. That is the reason I am reading the book, which is NOT an easy read by the way, unless of course you already know the subject. I think it is an easy read. That is how I learned Subversion. I was coming from an AS/400 background where version control is quite different. I had used PVCS and SourceSafe quite a bit, and CVS a little bit. From reading the book when Subversion 1.0 came out, I felt like I understood the tool almost immediately. Obviously there was still a lot more I learned over the years by experience and this mailing list, but the book laid the ground work. Understanding things like repositories, working copies, revisions and mixed revision working copies are all essential concepts and I think the book explains them well. The book jumps around worse than a bullfrog on a blacktop in the summer. It talks about creating a repository, then goes on about properties. I am trying to follow it but then have to change chapters because creating repositories is discussed in other places AFTER you need them to exist to test out properties. The book is open source so feel free to suggest and contribute ideas for improvements. It is obviously difficult to strike the right balance for giving a high level explanation of the tool and how it works, as well as comprehensive reference documentation AND cookbook like how-to. I think it does a great job with the high-level, is fairly good for reference material and only lightly wades into the cookbook area with some of the examples. That said, there is a ton of the cookbook type
RE: general questions
Thanks again, I'm learning. I appreciate the time put in to help me and I really don't want to cost you more time, so I have a couple of yes/no questions. So the only time to use svnadmin create without having a dedicated server would be a single user (like me at home)? As for as the dll extensions, those are not a concern. I am talking about ide setting files. And if we have a project made up of 44 repositories I need to enter the command 44 times, no eaiser way, right? Thanks again. John From: Mark Phippard [mailto:markp...@gmail.com] Sent: Monday, September 10, 2012 12:35 PM To: John Maher; users@subversion.apache.org Subject: Re: general questions Please keep replies on the mailing list. On Mon, Sep 10, 2012 at 12:02 PM, John Maher jo...@rotair.com wrote: Thanks again Mark, you have been helpful. Let me clear some things up. Let me clear up by what I mean as local repository. We have a svn server which has repositories on it. It serves us files to our local directories when we ask for them using VisualSVN Server. I also created some repositories locally with svnadmin create. The repositories are on the same machine, on the same drive as the working copy and I can get a working copy without any network access and do not need VisualSVN Server, Subversion Edge or any other server to create or access it. Sure you can say the server is MyMachineName and the client is MyMachineName. However the repositories ARE different because svnadmin works with one type and fails with another. Perhaps you never used the second type. If you have what would you call it to differentiate between them? They are just repositories. You can say you are accessing one via file:// protocol and one via http:// protocol if you like. svnadmin only operates directly on the file system via the OS. It does not talk to anything except the bytes on disk. So it needs access to those bytes. The normal thing to do is to run svnadmin on the server where you want your repositories to live. You login to the server directly using something like an SSH terminal or a Remote Desktop. When you run a GUI on your server like VisualSVN or SVN Edge, those tools are simply providing a way to run the svnadmin command via some other remote access interface such as your web browser. I am still wondering about the issue I read somewhere it said you should use a what-ever-you-want-to-call-it repository via a URL and a server product (like VisualSVN Server) instead of a what-ever-you-want-to-call-it repository on a network drive without using a server product (using svnadmin create) in a multi-user environment. You can create repositories on a network share and access them via file:// protocol but you shouldn't. All users need full read/write access to the repository files if you do this, which means they can accidentally delete or corrupt those files. Of course they can also do so for malicious/intentional reasons. Accessing the repository this way will also typically be significantly slower than accessing them via a server. And we have numerous files we need to ignore. We are using visual studio. We have a project which consists of 44 dlls. Each dll is in its own directory and is a project in and of itself. Each directory contains files and directories which need to be ignored when a new user creates a working copy so the user's settings don't get stepped on. So that means entering the svn:ignore command 44 times at least for this one project alone. I was hoping for a better way. You can setup clients to ignore the DLL extensions always, but that has to be done on each client. Setting svn:ignore is the better way and it only has to be done by one user and then committed to the repository for all others. We do have TortiseSVN. The documentation is quite poor with this product. Well, I disagree. At least compared to every other SVN client, they have the best and most complete documentation. I cannot speak to the commercial clients, maybe some of them are better but I doubt it. That is the reason I am reading the book, which is NOT an easy read by the way, unless of course you already know the subject. I think it is an easy read. That is how I learned Subversion. I was coming from an AS/400 background where version control is quite different. I had used PVCS and SourceSafe quite a bit, and CVS a little bit. From reading the book when Subversion 1.0 came out, I felt like I understood the tool almost immediately. Obviously there was still a lot more I learned over the years by experience and this mailing list, but the book laid the ground work. Understanding things like repositories, working copies, revisions and mixed revision working copies are all essential concepts and I think the book explains them well. The book jumps around worse than a bullfrog on a blacktop in the
Re: general questions
On Mon, Sep 10, 2012 at 1:43 PM, John Maher jo...@rotair.com wrote: Thanks again, I’m learning. ** ** I appreciate the time put in to help me and I really don’t want to cost you more time, so I have a couple of yes/no questions. ** ** So the only time to use svnadmin create without having a dedicated server would be a single user (like me at home)? Yes. You only use svnadmin to create repositories and a few other actions that operate directly on the disk. That means you are either managing a server or in the case of a single user, creating a personal repository on the same machine you do development. As for as the dll extensions, those are not a concern. I am talking about ide setting files. As is noted in the book: http://svnbook.red-bean.com/en/1.7/svn.advanced.props.special.ignore.html There is a global ignores that can be configured per client. This lets you just ignore all files with a specific extension. I do not know what the IDE configuration files are the you want to ignore but if they have a unique extension, this is one option. The other option is the svn:ignore property. This has to be set on the parent folder that might contain the files you want to ignore. You can also ignore an entire folder, so if all your build output goes to a folder named build you can just ignore that entire folder. And if we have a project made up of 44 repositories I need to enter the command 44 times, no eaiser way, right? The global ignores are a per client setting and would apply to all repositories. You just have to make sure all your users set it up. The svn:ignore property is set on folders within the repository. -- Thanks Mark Phippard http://markphip.blogspot.com/
Re: general questions
On 9/10/2012 10:43 AM, John Maher wrote: Thanks again, I'm learning. I appreciate the time put in to help me and I really don't want to cost you more time, so I have a couple of yes/no questions. So the only time to use svnadmin create without having a dedicated server would be a single user (like me at home)? At some level, svnadmin create will be called once per repository. Whether that is done through a GUI-based interface or from the command line is immaterial. This is the first step in setting up a repository, and it has to be on the machine that will serve the repository. It may be helpful to think of Subversion as a program package that runs on a server. If you are a single user working on a non-networked machine, then your local machine can be a Subversion server by reading the repository directly, using the file:// protocol. This protocol has major problems with multiple (and sometimes even remote) access, so it is safely run only on the machine where the files reside and only by one user at a time. If you need to access a repository on another machine, particularly if multiple users will be accessing the repository, you need some kind of server process running on that machine to manage internal operations safely and arbitrate between simultaneous requests. Subversion includes the svnserve program to serve files using the svn:// protocol and has code that allows Apache HTTPD to serve files using the http://; or https://; protocol. Personally, my repositories are all served using Apache HTTPD. I have multiple machines, and although it is unlikely that I would ever commit code from two different machines at the same time, the ease of use for the file:// protocol just wasn't worth the risk. I host some Web sites too, and it was easier for me to adapt my HTTPD setup knowledge than to learn how to configure svnserve. Your mileage may vary. As for as the dll extensions, those are not a concern. I am talking about ide setting files. And if we have a project made up of 44 repositories I need to enter the command 44 times, no eaiser way, right? Subversion does not provide repository administration or sandbox configuration tools; it provides a repository hosting mechanism. What you are asking for is not part of Subversion, so yes you need to enter the command 44 times. Scripting languages are your friends here. Write one script to invoke the configuration commands for a single repository, then another to invoke the first script for every repository in a list. This has multiple benefits: 1) You can call the first script each time you add a new repository, rather than type in the commands all over again. 2) Automation of this kind allows you to configure all of your repositories identically. 3) The scripts document the configuration you used (rather than scraps of paper somewhere, or the memory of an employee who may leave). -- David Chapman dcchap...@acm.org Chapman Consulting -- San Jose, CA Software Development Done Right. www.chapman-consulting-sj.com
RE: general questions
Thank you very much. Now I can get back to reading. John From: Mark Phippard [mailto:markp...@gmail.com] Sent: Monday, September 10, 2012 3:06 PM To: John Maher Cc: users@subversion.apache.org Subject: Re: general questions On Mon, Sep 10, 2012 at 1:43 PM, John Maher jo...@rotair.com wrote: Thanks again, I'm learning. I appreciate the time put in to help me and I really don't want to cost you more time, so I have a couple of yes/no questions. So the only time to use svnadmin create without having a dedicated server would be a single user (like me at home)? Yes. You only use svnadmin to create repositories and a few other actions that operate directly on the disk. That means you are either managing a server or in the case of a single user, creating a personal repository on the same machine you do development. As for as the dll extensions, those are not a concern. I am talking about ide setting files. As is noted in the book: http://svnbook.red-bean.com/en/1.7/svn.advanced.props.special.ignore.htm l There is a global ignores that can be configured per client. This lets you just ignore all files with a specific extension. I do not know what the IDE configuration files are the you want to ignore but if they have a unique extension, this is one option. The other option is the svn:ignore property. This has to be set on the parent folder that might contain the files you want to ignore. You can also ignore an entire folder, so if all your build output goes to a folder named build you can just ignore that entire folder. And if we have a project made up of 44 repositories I need to enter the command 44 times, no eaiser way, right? The global ignores are a per client setting and would apply to all repositories. You just have to make sure all your users set it up. The svn:ignore property is set on folders within the repository. -- Thanks Mark Phippard http://markphip.blogspot.com/
RE: general questions
Thanks Dave, that was helpful. I saw the svn prefix in the book but didn't know what it meant. Your explanation was good. The scripts are a good idea, but I was thinking about a gui for the client side, kinda like Subversion Edge; basically a wrapper for the command line. Even though my first computer didn't have a mouse (or hard drive) the gui is the way to go, typing commands is just not the future. I may start something to make my job easier. I think HTML would benefit the most people. But I need to learn a lot more first. John From: David Chapman [mailto:dcchap...@acm.org] Sent: Monday, September 10, 2012 3:12 PM To: John Maher Cc: Mark Phippard; users@subversion.apache.org Subject: Re: general questions On 9/10/2012 10:43 AM, John Maher wrote: Thanks again, I'm learning. I appreciate the time put in to help me and I really don't want to cost you more time, so I have a couple of yes/no questions. So the only time to use svnadmin create without having a dedicated server would be a single user (like me at home)? At some level, svnadmin create will be called once per repository. Whether that is done through a GUI-based interface or from the command line is immaterial. This is the first step in setting up a repository, and it has to be on the machine that will serve the repository. It may be helpful to think of Subversion as a program package that runs on a server. If you are a single user working on a non-networked machine, then your local machine can be a Subversion server by reading the repository directly, using the file:// file:///\\ protocol. This protocol has major problems with multiple (and sometimes even remote) access, so it is safely run only on the machine where the files reside and only by one user at a time. If you need to access a repository on another machine, particularly if multiple users will be accessing the repository, you need some kind of server process running on that machine to manage internal operations safely and arbitrate between simultaneous requests. Subversion includes the svnserve program to serve files using the svn:// protocol and has code that allows Apache HTTPD to serve files using the http://; http:// or https://; https:// protocol. Personally, my repositories are all served using Apache HTTPD. I have multiple machines, and although it is unlikely that I would ever commit code from two different machines at the same time, the ease of use for the file:// file:///\\ protocol just wasn't worth the risk. I host some Web sites too, and it was easier for me to adapt my HTTPD setup knowledge than to learn how to configure svnserve. Your mileage may vary. As for as the dll extensions, those are not a concern. I am talking about ide setting files. And if we have a project made up of 44 repositories I need to enter the command 44 times, no eaiser way, right? Subversion does not provide repository administration or sandbox configuration tools; it provides a repository hosting mechanism. What you are asking for is not part of Subversion, so yes you need to enter the command 44 times. Scripting languages are your friends here. Write one script to invoke the configuration commands for a single repository, then another to invoke the first script for every repository in a list. This has multiple benefits: 1) You can call the first script each time you add a new repository, rather than type in the commands all over again. 2) Automation of this kind allows you to configure all of your repositories identically. 3) The scripts document the configuration you used (rather than scraps of paper somewhere, or the memory of an employee who may leave). -- David Chapman dcchap...@acm.org Chapman Consulting -- San Jose, CA Software Development Done Right. www.chapman-consulting-sj.com
Re: general questions
On Mon, Sep 10, 2012 at 2:31 PM, John Maher jo...@rotair.com wrote: The scripts are a good idea, but I was thinking about a gui for the client side, kinda like Subversion Edge; basically a wrapper for the command line. Even though my first computer didn’t have a mouse (or hard drive) the gui is the way to go, typing commands is just not the future. GUI's require the programmer to anticipate every possible thing you might want to do and provide an elaborate user interface for it. Command driven things can generally be combined in useful ways that weren't initially anticipated. If you need to do some sequence of operations on your 44 repositories, it will likely be much easier to put the commands inside a for loop in a script than to do the bazillion mouse clicks it will take to get to the right places in a GUI and type them in.Unless, of course, the GUI designer anticipated exactly that usage and gave you a way to describe it (and then does the same loop internally...). -- Les Mikesell lesmikes...@gmail.com
Re: general questions
Guten Tag John Maher, am Montag, 10. September 2012 um 21:31 schrieben Sie: The scripts are a good idea, but I was thinking about a gui for the client side, kinda like Subversion Edge; basically a wrapper for the command line. Even though my first computer didn't have a mouse (or hard drive) the gui is the way to go, typing commands is just not the future. I may start something to make my job easier. I think HTML would benefit the most people. But I need to learn a lot more first. Don't do that, there are a lot of GUIs for Subversion out there. Especially if you need to repeat the same task many times, the command line and scripts are the way to got, because that's what they are made for. Nobody wants to click the same click paths 44 times through a GUI, that's why some programs are capable of macros. You should really think twice if your want to waste your time with building some client side HTML application with very limited benefit and capabilities. Have a look at TortoiseSVN and its integration into the Windows Explorer, a lot of mass editing tasks of whatever are really easy to achieve, as with normale file operations. Mit freundlichen Grüßen, Thorsten Schöning -- Thorsten Schöning E-Mail:thorsten.schoen...@am-soft.de AM-SoFT IT-Systeme http://www.AM-SoFT.de/ Telefon.030-2 1001-310 Fax...05151- 9468- 88 Mobil..0178-8 9468- 04 AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
RE: general questions
I don't 100% agree. I've designed lots of guis. And there were times users discovered a feature I never intended. And I'm not talking about a bug called a feature. While true that the programmer has a lot to think about (fortunately I am one), the gui can be designed in such a way to empower the user. Simply presenting the choices in a list will speed use by avoiding typing in long paths and the occasional type. Having a multi-selectable list allows any command ease of application to many targets with a loop you spoke of. I never have to think of every possibility the user can enter, just every possibility of a command I will execute. They are not the same. You are right where a script is more suitable for a sequence on many things. My gui will never be able to compete with that. On a single operation on many things, if the gui can do it, it will win every time. I can out-click a very fast typer, probably not the fastest. And if it requires a bazillion mouse clicks, it is a poor design. John -Original Message- From: Les Mikesell [mailto:lesmikes...@gmail.com] Sent: Monday, September 10, 2012 4:05 PM To: John Maher Cc: David Chapman; Mark Phippard; users@subversion.apache.org Subject: Re: general questions On Mon, Sep 10, 2012 at 2:31 PM, John Maher jo...@rotair.com wrote: The scripts are a good idea, but I was thinking about a gui for the client side, kinda like Subversion Edge; basically a wrapper for the command line. Even though my first computer didn't have a mouse (or hard drive) the gui is the way to go, typing commands is just not the future. GUI's require the programmer to anticipate every possible thing you might want to do and provide an elaborate user interface for it. Command driven things can generally be combined in useful ways that weren't initially anticipated. If you need to do some sequence of operations on your 44 repositories, it will likely be much easier to put the commands inside a for loop in a script than to do the bazillion mouse clicks it will take to get to the right places in a GUI and type them in.Unless, of course, the GUI designer anticipated exactly that usage and gave you a way to describe it (and then does the same loop internally...). -- Les Mikesell lesmikes...@gmail.com
Re: general questions
On 9/10/2012 12:31 PM, John Maher wrote: Thanks Dave, that was helpful. I saw the svn prefix in the book but didn't know what it meant. Your explanation was good. The scripts are a good idea, but I was thinking about a gui for the client side, kinda like Subversion Edge; basically a wrapper for the command line. Even though my first computer didn't have a mouse (or hard drive) the gui is the way to go, typing commands is just not the future. I may start something to make my job easier. I think HTML would benefit the most people. But I need to learn a lot more first. Hmm, my first personal computer had a hexadecimal keypad and 256 bytes (not even kilobytes!) of memory. :-) Scripts (aka typing) allow repeatability. A GUI that allows you to specify a set of options for every repository can be helpful, but down inside it will be doing the same thing as a script - and a script is easier to customize or debug when the existing tools don't do what you need. Also, scripts don't disappear if the GUI goes down. For this reason many sysadmins prefer scripts over GUI-based tools, and I don't see this ever changing. As a result, I can't help you find a GUI that will help you administer your repositories. TortoiseSVN is a client-side GUI for Windows-based machines but I haven't used it. I don't know how close it comes to meeting your needs. -- David Chapman dcchap...@acm.org Chapman Consulting -- San Jose, CA Software Development Done Right. www.chapman-consulting-sj.com
RE: general questions
If you think it would require 44 click paths then that is indeed a poor design. 1 click to select the repository, 1 click to select all. I just turned 44 click paths into 2 clicks. Sounds like your vision is nothing like mine. What other guis are out there besides tortoise? If there's something I like, I'll use it. Otherwise I'll make one if only to illustrate what seems difficult for me to explain and others to grasp. John -Original Message- From: Thorsten Schöning [mailto:tschoen...@am-soft.de] Sent: Monday, September 10, 2012 4:14 PM To: users@subversion.apache.org Subject: Re: general questions Guten Tag John Maher, am Montag, 10. September 2012 um 21:31 schrieben Sie: The scripts are a good idea, but I was thinking about a gui for the client side, kinda like Subversion Edge; basically a wrapper for the command line. Even though my first computer didn't have a mouse (or hard drive) the gui is the way to go, typing commands is just not the future. I may start something to make my job easier. I think HTML would benefit the most people. But I need to learn a lot more first. Don't do that, there are a lot of GUIs for Subversion out there. Especially if you need to repeat the same task many times, the command line and scripts are the way to got, because that's what they are made for. Nobody wants to click the same click paths 44 times through a GUI, that's why some programs are capable of macros. You should really think twice if your want to waste your time with building some client side HTML application with very limited benefit and capabilities. Have a look at TortoiseSVN and its integration into the Windows Explorer, a lot of mass editing tasks of whatever are really easy to achieve, as with normale file operations. Mit freundlichen Grüßen, Thorsten Schöning -- Thorsten Schöning E-Mail:thorsten.schoen...@am-soft.de AM-SoFT IT-Systeme http://www.AM-SoFT.de/ Telefon.030-2 1001-310 Fax...05151- 9468- 88 Mobil..0178-8 9468- 04 AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
Re: general questions
On Mon, Sep 10, 2012 at 3:15 PM, John Maher jo...@rotair.com wrote: I don't 100% agree. I've designed lots of guis. And there were times users discovered a feature I never intended. And I'm not talking about a bug called a feature. While true that the programmer has a lot to think about (fortunately I am one), the gui can be designed in such a way to empower the user. I'm not saying GUIs don't work. Just that they are generally a subset of what can be done with commands. Simply presenting the choices in a list will speed use by avoiding typing in long paths and the occasional type. You are making some assumptions about scale and locality here. I have most of the world at my fingertips in the form of URLs. Having a multi-selectable list allows any command ease of application to many targets with a loop you spoke of. I never have to think of every possibility the user can enter, just every possibility of a command I will execute. They are not the same. OK, but if I regularly work with 44 repositories, I'm likely to have their URLs in a file where a script can extract them a lot faster than you can navigate the world in a picklist. You are right where a script is more suitable for a sequence on many things. My gui will never be able to compete with that. On a single operation on many things, if the gui can do it, it will win every time. I can out-click a very fast typer, probably not the fastest. Let's assume the list of choices won't fit on a screen... And if it requires a bazillion mouse clicks, it is a poor design. But it can only be a good design after you already now what I'm going to do. Until then you can only offer the bazillion choices. -- Les Mikesell lesmikes...@gmail.com
Re: svnadmin
Returning the thread to the list: On Sep 10, 2012, at 11:18, John Maher wrote: Thanks Ryan. I was wrong about the hooks directory not being there, it was there just not displayed by VisualSVN. So if I create a repository on a network drive multiple users can use it if with no problems, right? If so then does that mean VisualSVN Server is optional? Just trying to understand subversion. Its not easy. I'm on chapter 3 and the book is making more questions than it answers. Hopefully soon I'll be at the point where more questions get answered by the book than are created. You should not create repositories on network drives; you could encounter [permissions|performance|corruption|dataloss] problems. Repositories should be on a disk local to the machine that's running svnserve or httpd with mod_dav_svn to serve it to users, and should be secured so that only the user that svnserve or httpd runs as can read from and write to them.
RE: general questions
If you think it would require 44 click paths then that is indeed a poor design. Do you really have 44 repositories? Or 44 projects in a single repository? 1 click to select the repository, 1 click to select all. I just turned 44 click paths into 2 clicks. Sounds like your vision is nothing like mine. What other guis are out there besides tortoise? If there's something I like, I'll use it. Otherwise I'll make one if only to illustrate what seems difficult for me to explain and others to grasp. Tortoise is the best GUI for Windows I think. There are others. But, what you are doing is not a COMMON use case. The common use case it to add your ignores when you set up a new project in your repository. Doing 44 after the fact is not a standard use case. Here is a list to some of the others: http://svn-ref.assembla.com/windows-svn-client-reviews.html BOb John