Re: How to find out the rev number where a file was deleted?
Greetings, Les Mikesell! Still, this should at least produce some results: (as long as foo existed in rev 3) svn log -r 0:head file://${HOME}/trash/repo/f...@3 svn: File not found: revision 5, path '/foo' It makes no sense for svn to complain about what's in rev 5. My query doesn't care about rev 5. I think the principle was covered in another response, but the only way you can get history is to start from the highest rev and follow backwards, and you are asking it to start from head, which is impossible. Impossible within current realization of storage backend. But sensible from user's viewpoint and scheduled to be resolved in future. I'd ask you to stop giving out your own opinion under mask of absolute truth. I'm admittedly not an expert, but I don't understand exactly how this can be resolved to work the way you want when the names of objects are only loosely connected to the objects themselves. This is not a problem at all. The simplest solution I can imagine is to maintain a table revision|URL|action|previous_revision|previous_URL Walking this table back and forth is as quick as any usual database operation. What database operation is fast when it has to follow recursive self-references in the same table? SELECT operation, even on a multitude of arguments, is relatively fast. Hell, even UNION JOIN over a NetFlow data is just about a few seconds. Each time you copy a high level directory (typical for users that tag frequently) you'd have to have an entry for every path below it. When you follow forward, you'll explode out a tree of new paths. Not a problem, really. This is strictly server-side operation, means it is done on a fast backend, not affected by network issues. Doubt it could be slower than real-time walking on a graph with 6k points. And some new command could be added to svn program to give result similar to status command, but including revision numbers. Something like A 5 /trunk/frontend/fig1.php MM 7 /trunk/frontend/fig1.php M 8 /trunk/frontend/fig1.php D 26 /trunk/frontend/fig1.php A 57 /trunk/frontend/f-o.php R 58 /trunk/frontend/fig1.php C 59 /branch/xxx/frontend/fig1.php GM 77 /trunk/frontend/fig1.php And how should this look if every operation is a move/rename? Or copies followed by different renames out each branch? I specifically mentioned this moment it in the part you striped from quote. If it start to branch, each of these files will have it's own tracking onward from the branching point. Nothing wrong with it. Or do you concerned with tracking request output? It's not a problem either. As long as URL wasn't renamed/deleted, it should keep giving out the mainline. But that's the point. Things are copied and moved regularly. And renamed temporarily and then back. Nota a concern. Mainline go on and at some point die (if at all), giving all sort of hints, as to where to look further, in process. If you REALLY want to see if the file was moved back instead of merging, you'd run a new trace from one of the branching points. You're right that u...@peg form an unique identity, but making a mistake thinking about URL across whole range of history. As you pointed out, URL alone isn't enough to identify the file. But that's not a problem, because Subversion wouldn't be working over whole repository, only with each revision it know of, sequentially. There's only one way back through history but no limit to future branches if you want it to look forward. There CURRENTLY only one way - back. This is a deficiency of current backend realization. And amount of future branches is not a problem at all, if you stop banging your head over it. I can see that subversion could, with some extra work on the server side, track down the end of the line in the future of f...@3 by examining every subsequent revision when you ask for: svn log -r 0:head file://${HOME}/trash/repo/f...@3 But what should it do if a different object with the same name but a different history has been copied into head where you are really asking it to start giving history? If it'd be implemented right, Subversion would not see these files at all. It'd simply NOT look into HEAD in first place. It only looks in head because that command asks it for the history of head. No. Really, I see this as pointless discussion. You absolutely don't hear my arguments. P.S. Please don't use reply to all in reply to my posts. It's not a big problem deleting a few more messages from my inbox, still it's disturbing. TIA. -- WBR, Andrey Repin (anrdae...@freemail.ru) 01.12.2010, 14:07 Sorry for my terrible english...
Re: How to find out the rev number where a file was deleted?
Greetings, Les Mikesell! Still, this should at least produce some results: (as long as foo existed in rev 3) svn log -r 0:head file://${HOME}/trash/repo/f...@3 svn: File not found: revision 5, path '/foo' It makes no sense for svn to complain about what's in rev 5. My query doesn't care about rev 5. I think the principle was covered in another response, but the only way you can get history is to start from the highest rev and follow backwards, and you are asking it to start from head, which is impossible. Impossible within current realization of storage backend. But sensible from user's viewpoint and scheduled to be resolved in future. I'd ask you to stop giving out your own opinion under mask of absolute truth. -- WBR, Andrey Repin (anrdae...@freemail.ru) 30.11.2010, 16:36 Sorry for my terrible english...
Re: AW: How to find out the rev number where a file was deleted?
Greetings, Les Mikesell! Binary search on the 0 to HEAD revision range is a possibility, but it's also a rather wasteful workaround. Fisheye (a commercial product) does a brute-force extract/index of all the filenames and content in all revs in a repo for quick searches. I'm not sure if there is any equivalent open source program but this is probably the right answer for anyone who needs to do that frequently. Sorry, do you mean that we have to pay to cover the lack of functionality in Subversion? And it should remain this way? Yes, I would not expect fast indexed full-text searches across names and content to ever be a part of the version control system itself. But the functionality to find filename changes is there - just 'log -v' from the top. Where you see a reference to full-text search in my quote? I have intentionally omit that part of your reply. There's a big problem here - whether a URL exists or not usually isn't the right answer for things that have been deleted and replaced by something else of the same name. I strongly suspect that Ludwig had in mind that Subversion could track revisions in which file has been changed in either way. Then no way you could confuse between different files with same URL. It does track that, but I don't think there is a convenient way to ask for it. Or for the server itself to find it efficiently. It only track it back into the past. There's no sane way to track it forward currently. I see some complications in implementation of this ability, mainly in the controversial way it should work (i.e. alter multiple previous revisions to embed the forward tracking links, or to maintain a parallel base for them). -- WBR, Andrey Repin (anrdae...@freemail.ru) 30.11.2010, 21:10 Sorry for my terrible english...
Re: How to find out the rev number where a file was deleted?
Greetings, Les Mikesell! Still, this should at least produce some results: (as long as foo existed in rev 3) svn log -r 0:head file://${HOME}/trash/repo/f...@3 svn: File not found: revision 5, path '/foo' It makes no sense for svn to complain about what's in rev 5. My query doesn't care about rev 5. I think the principle was covered in another response, but the only way you can get history is to start from the highest rev and follow backwards, and you are asking it to start from head, which is impossible. Impossible within current realization of storage backend. But sensible from user's viewpoint and scheduled to be resolved in future. I'd ask you to stop giving out your own opinion under mask of absolute truth. I'm admittedly not an expert, but I don't understand exactly how this can be resolved to work the way you want when the names of objects are only loosely connected to the objects themselves. This is not a problem at all. The simplest solution I can imagine is to maintain a table revision|URL|action|previous_revision|previous_URL Walking this table back and forth is as quick as any usual database operation. And some new command could be added to svn program to give result similar to status command, but including revision numbers. Something like A 5 /trunk/frontend/fig1.php MM 7 /trunk/frontend/fig1.php M 8 /trunk/frontend/fig1.php D 26 /trunk/frontend/fig1.php A 57 /trunk/frontend/f-o.php R 58 /trunk/frontend/fig1.php C 59 /branch/xxx/frontend/fig1.php GM 77 /trunk/frontend/fig1.php (Yes, there's a reference to the moment file has been Copied, but that's only made for reference, to give investigator an idea of what could've been done to the file, and where to look. As you can see, the file was merGed back to the trunk in my example, but no mention if it was edited in between 59 and 77 - you'd have to run another track for that file in branch to discover that) That is, a path and revision in peg revision form uniquely identifies an object, and that object has a certain amount of history. However that same path at any other revision may be an entirely different object with a different history or may not exist at all. If subversion starts to track the 'copy-to' info so you can follow revisions in the forward direction, you can end up with many different descendants with different paths, but it's not clear that would make it any easier to find the dead ends of deletions. If it start to branch, each of these files will have it's own tracking onward from the branching point. Nothing wrong with it. Or do you concerned with tracking request output? It's not a problem either. As long as URL wasn't renamed/deleted, it should keep giving out the mainline. You're right that u...@peg form an unique identity, but making a mistake thinking about URL across whole range of history. As you pointed out, URL alone isn't enough to identify the file. But that's not a problem, because Subversion wouldn't be working over whole repository, only with each revision it know of, sequentially. I can see that subversion could, with some extra work on the server side, track down the end of the line in the future of f...@3 by examining every subsequent revision when you ask for: svn log -r 0:head file://${HOME}/trash/repo/f...@3 But what should it do if a different object with the same name but a different history has been copied into head where you are really asking it to start giving history? If it'd be implemented right, Subversion would not see these files at all. It'd simply NOT look into HEAD in first place. Also, when you copy a directory in subversion, you expect it to bring along all of the history of that directory and the objects under it. If you want it to remember that a deleted object once lived under a certain path, when that path is copied, would you also want it to think that the deleted object was once under this new copied path? You asking a question that has no meaning. Subversion copy copies current state. Deleted files do not present in it. I don't see any problem. Or clarify your question. (provide use-case?) -- WBR, Andrey Repin (anrdae...@freemail.ru) 30.11.2010, 21:22 Sorry for my terrible english...
Re: AW: How to find out the rev number where a file was deleted?
Greetings, Les Mikesell! The deletion should show in an 'svn log -v' of the directory where the file was deleted. That directory was deleted as well. As well, at unknown revision. Multiple times. The question is not that we can work around the issue, the question is, why Subversion can't do this for us? Because the file doesn't exist in the revision where it was deleted so there's nothing for the log to be about. That's a flaw, but well, I can live with it as long as there's other ways to get necessary info. The change for that rev happened in the directory above. I'm looking for directory already, as file history would not show me the necessary data. Dunno why... is it hard to track file from PEG revision to first operative revision and print out the logs for every revision, in which that file were changed, and spit the not found in rev X when the file disappear? Why it even think that file could exist in HEAD, when we unambiguously pointed to the specific point in time? I can understand that it's not easy to track deletes/copies forward, but tracking history from creation time to deletion(renamind implies deletion) time should be possible IMO. It is not that it isn't tracked. It just isn't tracked where you are looking for it. I'm looking for it at revision 2. [C:\]$svn log -v -r 0:HEAD -- http://svn.darkdragon/repos/t...@2 svn: '/repos/!svn/bc/35/test' path not found [C:\]$svn log -v -r 0:3 -- http://svn.darkdragon/repos/t...@2 r1 | anrdaemon | 2009-04-02 17:55:17 +0400 (×ò, 02 àïð 2009) | 2 lines Changed paths: A /test A /test/a Test1 r2 | anrdaemon | 2009-04-02 17:56:13 +0400 (×ò, 02 àïð 2009) | 1 line Changed paths: A /test/b test 2 r3 | anrdaemon | 2009-04-02 17:56:48 +0400 (×ò, 02 àïð 2009) | 1 line Changed paths: R /test/a Test 3 And this should be possible without user's guesswork. It's fairly simple to find correct revision range in repository with 40 commits. In repository with 40,000 commits things became a bit scary. Subversion tracks things backwards from a starting point that is either something that exists or a peg revision where it did exist. I know. Quite. And if you didn't noticed, I specifically specified (LOL) a PEG revision... With exactly that intent - to get around absence of file in HEAD... You can find where things were deleted with a 'log -v' of a directory high enough in the repository to contain the change, then use the previous revision as the peg rev for the thing you want to log from there back while it existed. Project contains 40,000 revisions, about 800 files, like eight branches, that was created/deleted/recreated at some point each, and approximately 25 tags denoting stable builds. Good luck finding directory LOW enough that allow you to find a file without use of a sophisticated log parser, since revision numbers are not connected to changed files in any way suitable for meaningful grep'ing. -- WBR, Andrey Repin (anrdae...@freemail.ru) 28.11.2010, 5:50 Sorry for my terrible english...
Re: AW: How to find out the rev number where a file was deleted?
Greetings, Les Mikesell! The change for that rev happened in the directory above. I'm looking for directory already, as file history would not show me the necessary data. Dunno why... is it hard to track file from PEG revision to first operative revision and print out the logs for every revision, in which that file were changed, and spit the not found in rev X when the file disappear? It doesn't track the future of a file, it tracks the history. Start with a peg revision Wat? It start with HEAD irrelevant to what PEG revision we've specified. And immediately spitting no such file, although the file is 100% there. of the revision before the delete and the log will track it back through it's entire history. Why it even think that file could exist in HEAD, when we unambiguously pointed to the specific point in time? It won't look towards HEAD unless you request that in the revision range for the log, and then it will be impossible. I specified PEG revision. Documentation clearly states that PEG revision has precedence over operative revision in conflicting names resolution, but for absent files (name conflicting with void) it not seems to be the case. I can understand that it's not easy to track deletes/copies forward, but tracking history from creation time to deletion(renamind implies deletion) time should be possible IMO. Actually, while renaming implies deletion, it is not a loss of history. Yes, but it's still a deletion. The log of the renamed file will have it, as will the directories containing the changes to the names. Unfortunatelly. It only show that file was renamed, but does not show the new name. (Or old name? One of them - see the log below) It is not that it isn't tracked. It just isn't tracked where you are looking for it. I'm looking for it at revision 2. [C:\]$svn log -v -r 0:HEAD -- http://svn.darkdragon/repos/t...@2 svn: '/repos/!svn/bc/35/test' path not found But you are asking it to track the future of that file to a place it doesn't exist. I beg to differ. I'm asking to 1. Pick the file (directory) /test at revision 2 2. Track it's changes history from revision 0 to HEAD. 3. I'm fully aware that the directory does not exist in HEAD, neither I ask Subversion to look there in first place. (literal meaning of first place) 4. Quite (un)surprisingly, my intent is to actually find revision, in which the destruction was made. Because, quite (un)surprisingly, I don't know that. See the order of instructions? Do I need to refer to the svnbook chapter discussing PEG and operative revisions, or you can find it yourself? [C:\]$svn log -v -r 0:3 -- http://svn.darkdragon/repos/t...@2 r1 | anrdaemon | 2009-04-02 17:55:17 +0400 (×ò, 02 àïð 2009) | 2 lines Changed paths: A /test A /test/a Test1 r2 | anrdaemon | 2009-04-02 17:56:13 +0400 (×ò, 02 àïð 2009) | 1 line Changed paths: A /test/b test 2 r3 | anrdaemon | 2009-04-02 17:56:48 +0400 (×ò, 02 àïð 2009) | 1 line Changed paths: R /test/a Test 3 And this should be possible without user's guesswork. It's fairly simple to find correct revision range in repository with 40 commits. In repository with 40,000 commits things became a bit scary. Subversion tracks things backwards from a starting point that is either something that exists or a peg revision where it did exist. I know. Quite. And if you didn't noticed, I specifically specified (LOL) a PEG revision... With exactly that intent - to get around absence of file in HEAD... But you can only expect it to track the history and it appeared that you wanted to track the future to HEAD. I could have pointed to any other of the revisions between @PEG and HEAD, which will net the very same result - unless I guess it right, the process will not start at all. I guess it could be more polite about giving you the revisions it can find along with the error. Nah, it could just obey to @PEG rule. Everything will be simpler. Unless there's absolutely no other way to track the file from @PEG, which i doubt, since you DO can access the file by @PEG, as well as navigate back in time easier, than forward. -- WBR, Andrey Repin (anrdae...@freemail.ru) 28.11.2010, 9:13 Sorry for my terrible english...
Re: Release Repositories
Greetings, David Weintraub! Any ideas of any software that can handle this. You'd be surprised, but the very filesystem (in Unix/Linux at least) support trigger mechanism. All you need is to write appropriate filter. -- WBR, Andrey Repin (anrdae...@freemail.ru) 22.11.2010, 19:09 Sorry for my terrible english...
Re: Release Repositories
Greetings, Les Mikesell! Realistically, you probably don't need to kick off the job the instant the filesystem changes - you'll at least want to wait until the file transfer completes. I'd expect a scheduled job running from cron on linux or the windows task scheduler checking for new files every few minutes to work at least as well as your existing manual process and avoid any OS/filesystem dependencies (i.e. it could run from linux checking a smb/cifs mounted windows filesystem or the reverse if you want). Cron job won't be able to know if file transfer is completed. It will have to guess from, e.g., testing the archive (if it's archive) for integrity. filesystem notification mechanism will for sure know, when the iostream got filewriteclose event. -- WBR, Andrey Repin (anrdae...@freemail.ru) 23.11.2010, 5:53 Sorry for my terrible english...
Re: Version caching
Greetings, Kevin Connor Arpe! I have a question about version caching. I am using the latest (stable) version on both Linux and WinSlows. As I understand Subversion, once a version is committed, basically it can never changed. A version is written in stone. If that is true, I was hoping Subversion could cache each versioned copy that it downloads. Currently, it seems running log, diff, and merge takes quite some time (I am very far away from my Subversion server at work... half the world.) I strongly suggest you read http://svnbook.org/ before asking any questions about Subversion. Is there an add-on or option I can use to ask Subversion to never throw away a version it sees? For this your question, there's two answers, equally right. 1. It is a native property of a Subversion. 2. It's not possible, nor it is realistically applicable. That way if I run log or merge or diff against an older version I have seen before... poof! it is immediately available. I thought about mirroring the server in read-only mode, but I really just want a local cache for versions that I might be looking at. That's the same. -- WBR, Andrey Repin (anrdae...@freemail.ru) 21.11.2010, 18:33 Sorry for my terrible english...
Re: Can't see the wood for the trees (or: what are my branches called?)
Greetings, Gary! Thanks (both of you). I'd have appreciated it even more if you had followed the Mail-Copies-To: never header. That is not standard header. If you really do not wish to receive personal reply, set the Reply-To address back to the mailing list, which is the right way to do this. -- WBR, Andrey Repin (anrdae...@freemail.ru) 19.11.2010, 23:32 Sorry for my terrible english...
Re: Promoting a mirror repository as a source repository
Greetings, Gingko! I have a (now theoretical) question : Suppose I have a repository that is a mirror repository of a remote source repository, regularly synced using svnsync. Suppose now that the source repository become broken or deleted for any reason (server breakdown, fire, etc) So the only available copy of the repository is now the synced mirror repository. How could I promote my mirror repository in order to have it becoming the new source repository on the mirror server or on another server ? (I think that just using the mirror repository without change is not enough as it contains somewhere inside it information about the old source repository, given at the beginning by svnsync initialize, which would certainly need to be removed) svn help switch http://svnbook.org/ Thank you very much for your answer, but I'm sorry, this is not an answer to my question. svn switch is about changing URLs in working copies, I know how to do this (actually I made several of these changes today). I gave you both answers. If you are too lazy to pick them, sorry, it's not my problem. But what I want to know is what I have to do on the REPOSITORY side. Most generalized answer: nothing. Details depends on your exact setup. -- WBR, Andrey Repin (anrdae...@freemail.ru) 06.11.2010, 19:54 Sorry for my terrible english...
Re: What is the best client with GUI for svn?
Greetings, San Martino! what is the most stable client with GUI for svn for use in a production environment from an user point of view (non-admin)? The features it should provide are , in order of priority: - stability - coverage for all the most important (sub)commands of the default svn client commands for the user - compatibility with Windows (with other systems is a surplus) - multi-language - if possible, web interface to be used from within firefox or explorer Most stable GUI client is a commandline tool. To clarify: your question is just ridiculous, both in form and by meaning. For different projects, for different tools used by actual laborers involved, many answers will be equally true. Just to give you an example: we were working on the same PHP project. I'm using FAR manager, and commandline svn client is best for me. Other person was using Eclipse and it's integrated Subversion capabilities to the same extent. There's not even a slight chance either of us would be using something else, that would drastically reduce performance for one of us, or both. More at pediwikia: http://en.wikipedia.org/wiki/Subversion_%28software%29 -- WBR, Andrey Repin (anrdae...@freemail.ru) 06.11.2010, 19:56 Sorry for my terrible english...
Re: Promoting a mirror repository as a source repository
Greetings, Gingko! I have a (now theoretical) question : Suppose I have a repository that is a mirror repository of a remote source repository, regularly synced using svnsync. Suppose now that the source repository become broken or deleted for any reason (server breakdown, fire, etc) So the only available copy of the repository is now the synced mirror repository. How could I promote my mirror repository in order to have it becoming the new source repository on the mirror server or on another server ? (I think that just using the mirror repository without change is not enough as it contains somewhere inside it information about the old source repository, given at the beginning by svnsync initialize, which would certainly need to be removed) svn help switch http://svnbook.org/ -- WBR, Andrey Repin (anrdae...@freemail.ru) 06.11.2010, 3:29 Sorry for my terrible english...
Re: RES: Subversion 1.6.13 Released
Greetings, Cooke, Mark! I am using SSPI alongside David's 1.6.13 builds (thanks again, David!) on apache on a windoze server box with no problems. From recent list traffic, issues with large commits failing seem to be related to timeout issues, search through the recent list for timeout and see if any of the suggestions there can help you. Which Apache version/SSPI module/SVN server and client you're using? For my own convenience. Apache latest 2.2.17 with open-ssl support, SSPI was I think the latest I could find (the windoze file properties dialog reports the module file version as 1.0.4.0), svn server is David Darj's 1.6.13 and client is latest TortoiseSVN Release 1.6.11 (2 October 2010). Ok, I'm using both server and client 1.6.13, Apache 2.2.16 and mod_auth_sspi 1.0.0.5 (Unfortunately, the link to original post http://www.nosq.com/blog/2008/06/fixing-mod_auth_sspi-and-ie-losing-post-data/ appears to be broken, but I do have direct DL link: http://dev.nosq.com/downloads/mod_auth_sspi/mod_auth_sspi_1.0.5b-vc9-2.2.11.zip ) One last bit: Tried with 1.6.1 client and server - same issue. :( Attached a log of that connection... Clocks are in sync []$cmdtime3.exe 192.168.1.12 192.168.1.12 192.168.1.12 192.168.1.12 * CmdTime 3.0 (c) Jury Gerasimov, 2000-2002. * Adjusting time via Internet Time Servers. * Contact author: http://www.softshape.com Connecting 192.168.1.12... OK. Connecting 192.168.1.12... OK. Connecting 192.168.1.12... OK. Connecting 192.168.1.12... OK. Current time : 2010-10-26 16:38:40 Suggested time : 2010-10-26 16:38:40 Inaccuracy : 00:00:00 -- WBR, Andrey Repin (anrdae...@freemail.ru) 26.10.2010, 16:25 Sorry for my terrible english... error.log Description: Binary data connect.log Description: Binary data
Re: RES: Subversion 1.6.13 Released
Greetings, Luiz Guilherme Kimel! In case you are using LDAP authentication I'm using NTLM auth against that machine local accounting. against an Microsoft Active Directory, please check your date and time settings including timezone. I'm playing EVE at the same time :) It's client tools are very sensitive to timezone settings, so they are right (and time difference between workstation and server never more than 30 seconds). Your apache server (where your svn server is running behind) is an authentication client for the Windows Server and if there is a small difference between their clocks then authentication may present this exact behavior. If only it was initial auth issue, but it starting commit right away, and break in between. I have no problem committing several hundreds om MB. I got no possibility to test with SSPI authentication though. Can you test without it and see if it works? The lines where it asking for username, it's when it falling back to Basic auth. I am using SSPI alongside David's 1.6.13 builds (thanks again, David!) on apache on a windoze server box with no problems. From recent list traffic, issues with large commits failing seem to be related to timeout issues, search through the recent list for timeout and see if any of the suggestions there can help you. Which Apache version/SSPI module/SVN server and client you're using? For my own convenience. -- WBR, Andrey Repin (anrdae...@freemail.ru) 25.10.2010, 16:58 Sorry for my terrible english...
Re: RES: RES: Subversion 1.6.13 Released
Greetings, Luiz Guilherme Kimel! I'm using CollabNetSubversion-client-1.6.11-4.win32. Its changlog says: Changes to included binaries: * Subversion upgraded to 1.6.11 * Apache upgraded to 2.2.15 * Openssl upgraded to 0.9.8n * Neon upgraded to 0.29.3 I had similar problem with SharePoint and .net web applications running under IIS 6 with basic authentication against an active directory. Pages would ask for authentication many times until completely loaded. Users could access it, pressing ok to the authentication dialog as many times as asked by the browser. It took me sometime to figure out the timezone difference between servers, since users could authenticate after all. It was a very annoying problem. I hope you find your way out of it. It is certainly not the timezone settings. Both machines are set to the same TZ and clocks usually differs by a fraction of second. -- WBR, Andrey Repin (anrdae...@freemail.ru) 26.10.2010, 9:17 Sorry for my terrible english...
Re: Subversion 1.6.13 Released
Greetings, Nico Kadel-Garcia! the open source version's features and design. It's also so common, I find it worthwhile to maintain a throwaway email account for just such Which often banned on the holder's mail server... Been there, too. But as I said, if there's no required download at all, I'm not interested in registration either way. My only concern for now is strange interaction of subversion client compiled by David Darj with server using NTLM authentication. It listing and retrieving files without a problem, but failing at commit. Both read and write access require proper authentication. Just want to confirm if it is compilation, configuration or something else. -- WBR, Andrey Repin (anrdae...@freemail.ru) 24.10.2010, 21:32 Sorry for my terrible english...
Re: Subversion 1.6.13 Released
Greetings, David Darj! David, I have a strange issue with binaries you provided. I'm using SVN repository served by Apache under Win32. In attachment is a httpd-modules-svn.conf - module loading. Enabling it... here: VirtualHost * ServerName svn.darkdragon ServerAlias svn.rootdir.org DocumentRoot C:/home/svn AddDefaultCharset utf-8 ErrorLog C:/home/svn/.log/error_log CustomLog C:/home/svn/.log/access_log common env=!SVN-ACTION CustomLog C:/home/svn/.log/svn_access_log svn env=SVN-ACTION IfModule rewrite_module some rewrite rules, they are convoluted and pretty much meaningless /IfModule Location / #AllowOverride Limit AuthConfig #Options None Order allow,deny Allow from 192.168.1.10 IfModule dav_svn_module DAV svn SVNParentPath C:/home/svn /IfModule IfModule sspi_auth_module Allow from all AuthName Subversion repository AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On SSPIOmitDomain On SSPIUsernameCase lower SSPIBasicPreferred Off # only developers may access the repository Require group DAEMON1\CVS # And they should obey to SVN user permissions file IfModule authz_svn_module AuthzSVNAccessFile C:/home/svn/.registry /IfModule /IfModule /Location /VirtualHost Everything works fine, when I operate with small files. But once I start submittings megabytes of data (~500 files, ~10Mb size total), Subversion start to break on authorization, randomly asking for password or username, again and again. I don't quite know, if it is specific to your builds, or is a bug in Subversion. I'll be glad to present any additional info. -- WBR, Andrey Repin (anrdae...@freemail.ru) 24.10.2010, 21:54 Sorry for my terrible english... httpd-modules-svn.conf Description: Binary data
Re: Subversion 1.6.13 Released
Greetings, All! Quick add: Transmitting file data .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** Authentication realm: http://svn.darkdragon:80 Subversion repository Username: anrdaemon Password for 'anrdaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** Authentication realm: http://svn.darkdragon:80 Subversion repository Username: anrdaemon Password for 'anrdaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** Authentication realm: http://svn.darkdragon:80 Subversion repository Username: anrdaemon Password for 'anrdaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Authentication realm: http://svn.darkdragon:80 Subversion repository Password for 'AnrDaemon': ** .. Committed revision 49. ls -kgoA of committed directory in attachment... -- WBR, Andrey Repin (anrdae...@freemail.ru) 24.10.2010, 22:18 Sorry for my terrible english... files.list Description: Binary data
Re: Recursive ACLs fail
Greetings, Jeremiah Foster! Is there any way I can specify ACLS per directory? What am I doing wrong? Just mention everyone at every point. Like, [] ~someone = rw someone = r -- WBR, Andrey Repin (anrdae...@freemail.ru) 11.03.2010, 19:46 Sorry for my terrible english...
Re: Programming a Watcher File
Greetings, David Weintraub! On Tue, Mar 2, 2010 at 11:39 PM, Andrey Repin anrdae...@freemail.ru wrote: Sorry, my head is a bit crippled for now, and your post contains too much cross-references to be understandable in my current state. Could you please put it in simple terms, how you see your potential system works? We have both development teams in India and in New York. When the Indian development team makes changes, the New York QA team needs to be notified, so they know what to test. When the New York development team checks something in, the Indian QA team needs to be notified. This will currently be for a single project, so I have to specify those files in that project that need to be watched. I decided to make this hook script a bit more general than for this specific circumstance. What if there are separate teams for each branch that need to be notified? What if other teams want their files to be watched? Having generalized hook script is always a nice option, if you ask me. Given sane configuration scheme, you never know, how unexpectedly nice setups your users would be able to build. If having a custom (and client-customizable) configuration is all you ever want, there's a hint: hook script can access repository as easy as any other local file. Just do svn cat on required file and parse it's content as normal. However, be very wary of access rights on the mentioned configuration file. I am using svnlook cat which is a bit faster Right, and thanks for a note. since I don't have to go through the Subversion server. I will be setting the rights on this configuration file, so only the managers can modify it. Plus, I'll get an email whenever the configuration file itself gets modified. Originally, I was thinking about using properties to set the watch. If I want a particular directory tree watched, I could put a sol:watch property on that directory, and anytime a file in that directory tree gets modified, I'll email the users. I didn't though about properties, but I clearly see a perfomance issue you've mentioned below. You have to enumerate whole tree back up to the repository root in attempt to locate the properties, and you can't just stop in the middle after first such property found. However, how do you find all of these properties? If I check in a file svn://host/project/dir/dir2/dir3/file, I'd have to check all the parent directories for the property (that's five different directories to check, plus the file itself). And, I'd have to do that for each file changed. Plus, how do developers find all of their watches? Therefore, I decided it would be better to have a single configuration file for the watches. Another possibility is to have a directory where users can put their own watch definitions. I have an access control script that can easily be setup so that barry.cfg can only be changed by barry and david.cfg can only be changed by david. But, that means getting a list of these watch files (svnlook tree), and then checking opening up each one to construct my watch list. That might take too long. You're missing one option - put a post-commit hook on this directory, which would compile single configuration file from all user files. I.e. svnroot\watch\watchlist (global options) svnroot\watch\watchlist.d\someuser.list svnroot\watch\watchlist.d\someotheruser.list Every time your post-commit (or pre-commit, if you decide) hook spot a write operation to the \watch\watchlist.d, it run compilation process, and notify repository administrators of the results. You can store compiled config out of repository, or inside it - as you decide. I'd go with off-site approach, as it could be reconstructed at any time, whenever the repository moves. -- WBR, Andrey Repin (anrdae...@freemail.ru) 04.03.2010, 17:27 Sorry for my terrible english...
Re: Programming a Watcher File
Greetings, David Weintraub! One of the tech leads wants to be able to program a watch file, so that when a certain set of developers change a particular file, certain other developers get notified. Thus, we need to be able to program what files, what developers do the commit, and what developers receive the notification. I'd like to do this, so this developer can maintain this file himself instead of me having to maintain it which means it can't be a text file on the Subversion server. Sorry, my head is a bit crippled for now, and your post contains too much cross-references to be understandable in my current state. Could you please put it in simple terms, how you see your potential system works? I'm working with something like this now. I have a configuration file where you setup the various parameters (specifying files via globbing or regex), who does the commit, and who receives the email. The configuration file sits in the source repository, so this tech lead has access to it. I was wondering if anyone already has a post-commit hook script like this already setup. I know there's one included in Subversion, but this one uses a text file that's accessible to the hook script and its setup isn't that flexible. If not, I'll finish up the one I'm working on. If having a custom (and client-customizable) configuration is all you ever want, there's a hint: hook script can access repository as easy as any other local file. Just do svn cat on required file and parse it's content as normal. However, be very wary of access rights on the mentioned configuration file. -- WBR, Andrey Repin (anrdae...@freemail.ru) 03.03.2010, 7:35 Sorry for my terrible english...
Re: Restoring a hotcopy repo
Greetings, Justin Connell! I need to set up a new svn repository from a hotcopy backup. I understand that it is a simple procedure of just copying the files into the new repo and ensuring that the file access permissions are correct, but my concern is that the hotcopy contains a series of .txn directories which implies that the hotcopy was configured to do an incremental back-up, and my core concern is that when I move the content of the hotcopy, do I include the .txn directories or are these ommitted? Hotcopy is a snap of working SVN repository. If you're concerned, you could just point your SVN tools to the new repository made from backup and see if it works the way you expect it to be. Then switch main server over to the new location. The txn dirs likely indicate stalled transactions, lookup documentation about the ways to cleanup repository from them. Yet again, you should not be need to mess with hotcopied files by hands - only using standard Subversion utilities. -- WBR, Andrey Repin (anrdae...@freemail.ru) 14.02.2010, 8:09 Sorry for my terrible english...
Re: Changing the native newline mode
Greetings, Glenn Maynard! Although I'm not sure why he wouldn't check out with a windows client. I'm not sure how connecting to a Linux machine to checkout to a folder mounted on a windows machine is easier than using the windows CLI. It's easier because it's a fully configured CLI that I already have running all the time, which does everything the way I want. I don't want to have to do half of my CLI work from a clumsy Cygwin window, especially since I have working copies in both Linux and Windows that I deal with simultaneously. Cygwin checkout will give you LF-only line endings, just like what you are doing now. Instead, we set svn:eol-style to LF, and configured our Windows editors to know how to deal with such files. Visual Studio just doesn't understand it. It'll load them and do basic editing fine, but copy/paste leads to mixed newlines. Use AnkhSVN for example. Or native Windows build of Subversion. -- WBR, Andrey Repin (anrdae...@freemail.ru) 13.02.2010, 6:15 Sorry for my terrible english...
Re: Changing the native newline mode
Greetings, Glenn Maynard! Is there any way to change the native newline mode for a particular working copy? I'm checking out code in Linux, over a CIFS mount to a Windows machine where it's being used. This is much easier for me than any of the solutions involving Windows clients, but ends up with Unix line endings, leading to newline headaches. Don't do that. Check out it where it'll be used. -- WBR, Andrey Repin (anrdae...@freemail.ru) 13.02.2010, 6:14 Sorry for my terrible english...
Re: upgrade subversion on ubunty hardy to 1.6.9
Greetings, Seth M! I cannot upgrade SVN on my ubuntu hardy, it only will install 1.5.1 - below is the apt-get install and the sources.list apt-get install subversion Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: db4.6-util subversion-tools The following NEW packages will be installed: subversion 0 upgraded, 1 newly installed, 0 to remove and 32 not upgraded. Need to get 0B/1274kB of archives. After this operation, 4194kB of additional disk space will be used. Selecting previously deselected package subversion. (Reading database ... 29651 files and directories currently installed.) Unpacking subversion (from .../ subversion_1.5.1dfsg1-1ubuntu2~hardy2_i386.deb) ... Setting up subversion (1.5.1dfsg1-1ubuntu2~hardy2) ... Have you updated package list after editing sources file? Did you added a signing key from PPA? $ aptitude show subversion Package: subversion State: not installed Version: 1.6.6dfsg-1ubuntu0maxb1~hardy1 Also, don't put custom lines to the beginning of sources.list. Always append them to the end. And btw... ## PPA repositories ## ## Subversion deb http://ppa.launchpad.net/svn/ppa/ubuntu hardy main deb-src http://ppa.launchpad.net/svn/ppa/ubuntu hardy main Source: http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065dsMessageId=2416305 -- WBR, Andrey Repin (anrdae...@freemail.ru) 12.02.2010, 4:17 Sorry for my terrible english...
Re: Recursive svn stat
Greetings, Naz! Hi there, I am trying to get a list of all files that have been added or removed from the repo by means other than svn commands. svn stat works, but does not recurse into directories. Ermm? Since when? For me, svn status descending into directories by default. $ svn --version svn, version 1.6.1 (r37116) compiled Apr 10 2009, 19:06:38 stdout:svn status ? htdocs\Index-main.htm ? htdocs\admin\fck\editor\js\fckeditorcode_gecko_2.txt svn stat --depth infinite does not help, that's the default behaviour anyway. Can I get a recursed output from svn stat? I *could* compare svn list -R with the output of ls -lR, but that'd require much scripting work that I would prefer to avoid. Any solutions? The only possible case, where it would not do that, if certain directory wasn't part of the original checkout. (Even being a part of repository) -- WBR, Andrey Repin (anrdae...@freemail.ru) 30.01.2010, 5:10 Sorry for my terrible english...
Re: Externals within the same repository
Greetings, Asbjørn Sæbø! Assume the following situation: There is a repository my_repo, structured like this: my_repo my_repo/trunk my_repo/trunk/a my_repo/trunk/a/file.h my_repo/trunk/b where my_repo/trunk/b has an svn:external to import the contents of my_repo/a. That is, b will have the contents of a external-ed in. Is this valid and sound SVN? I'm pretty sure file duplication is not valid in any development process, it's not a question of versioning. Ask yourself what REALLY you're trying to achieve. Other than creating a mess that not reflect your workspace. -- WBR, Andrey Repin (anrdae...@freemail.ru) 25.01.2010, 17:48 Sorry for my terrible english...
Re: Keeping tags/ and branches/ in the trunk
Greetings, trans! Is it possible to keep tags/ and branches/ in the trunk/ so as not to have to differentiate these three at the top of a repository. Everything is possible, but ask yourself, do you really want to checkout whole repository every time you request to checkout trunk? In other words, instead of: branches/ BRANCH_xyz/ tags/ RELEASE_1_0_0/ trunk/ README bin/ lib/ One could have: README bin/ branches/ BRANCH_xyz/ lib/ tags/ RELEASE_1_0_0/ I think I might prefer this approach, if possible. The problem of course is in creating new tags and branches, i.e. making a copy, I would need to prevent the tags/ and branches/ directories from being copied in the process. Is there a way to do that? And this one, too. Read svnbook... SVN is a filesystem, all basic rules of file handling apply. -- WBR, Andrey Repin (anrdae...@freemail.ru) 25.01.2010, 17:45 Sorry for my terrible english...
Re: Subversion queries hanging, timing out
Greetings, Dave Purrington! Lately we have been experiencing intermittent timeouts with our Subversion operations. It does not happen initially, but after a while it starts happening. Restarting Apache alleviates the problem, but it comes back after a time. As you can imagine, this wreaks havoc. Our operating environment: - server - Windows 2003 - Apache 2.2.13 - Subversion server 1.6.3 - Subversion client 1.6.6 - mod_auth_sspi 1.0.4-2.0.58 - 200+ very active users, ~74K files Server: Apache/2.2.11 (Win32) mod_auth_sspi/1.0.5 SVN/1.6.1 PHP/5.2.2 DAV/2 http://www.nosq.com/blog/2008/06/fixing-mod_auth_sspi-and-ie-losing-post-data/ http://dev.nosq.com/downloads/mod_auth_sspi/mod_auth_sspi_1.0.5b-vc9-2.2.11.zip -- WBR, Andrey Repin (anrdae...@freemail.ru) 15.01.2010, 17:48 Sorry for my terrible english...
Re: Troubles with VirtualHost configuration: never asked for password
Greetings, Will Scheidegger! I'm having a hard time configuring my virtual host to restrict access to my subversion repository. This is what my conf looks like: #Virtual Host Configuration VirtualHost w.x.y.z:80 ServerName svn.domain.com Location /svn/myproject Order Allow,Deny Allow from all DAV svn SVNPath /usr/local/svn/myproject AuthType Basic AuthName Subversion Repository AuthUserFile /etc/subversion/passwd Require valid-user /Location /VirtualHost Without the Order Allow,Deny + Allow from all directive the default virtual host configuration takes over and access is denied (Server sent unexpected return value (403 Forbidden) in response to OPTIONS request...). But with the directives I'm never asked for a password. According to all the manuals I consulted on the web, this setup _should_ challenge the user for a password (stored in /etc/subversion/passwd). Do I need to configure something else, i.e. modify stuff in /usr/local/svn/myproject/conf? Try running svn command with --no-auth-cache switch. Not really see what's wrong with your setup... For a convenience, here's my own configuration of authorization block (It using SSPI module, however, you have to replace relevant directives by ones suitable for your auth scheme): VirtualHost * ServerName svn.mydomain.local ServerAlias svn.example.org DocumentRoot C:/home/svn AddDefaultCharset utf-8 ErrorLog C:/home/svn/.log/error_log CustomLog C:/home/svn/.log/access_log common env=!SVN-ACTION CustomLog C:/home/svn/.log/svn_access_log svn env=SVN-ACTION IfModule rewrite_module # some private stuff here to make all things to work straight /IfModule Location / Order allow,deny # Limit access to single local IP # unless we have working authorization scheme Allow from 192.168.1.10 IfModule dav_svn_module DAV svn SVNParentPath C:/home/svn /IfModule IfModule sspi_auth_module Allow from all AuthName Subversion repository AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On SSPIOmitDomain On SSPIUsernameCase lower SSPIBasicPreferred Off # only developers may access the repository Require group EXAMPLE\CVS # And they should obey to SVN user permissions file IfModule authz_svn_module AuthzSVNAccessFile C:/home/svn/.registry /IfModule /IfModule /Location /VirtualHost -- WBR, Andrey Repin (anrdae...@freemail.ru) 13.01.2010, 4:28 Sorry for my terrible english...
Re: restricting sub-directory permissions
Greetings, Gabriel Ricardo! I cannot figure out how to restrict permissions on a sub-directory. What I want is to have anonymous read/write access to everything except a sub-directory, where only two users have read/write and everyone else has no access (read or write). I've done a lot of reading of the manual and googling the users list but can't find anything that solves my problem. Much appreciated if someone can point out my mistake. I'm using Redhat 5.2, which comes with subversion 1.4.2 (r22196). and apache 2.2.3 I have one repository at /usr/local/vn7/repos The relevant parts of my httpd.conf looks like this # SVN setup Location /svn DAV svn SVNPath /usr/local/vn7/repos # our access control policy AuthzSVNAccessFile /usr/local/vn7/etc/svn_auth_paths # try anonymous access first, resort to real # authentication if necessary. Satisfy Any Require valid-user # how to authenticate a user AuthType Basic AuthName Subversion repository AuthUserFile /usr/local/vn7/etc/svn_auth_users /Location My AuthUserFile looks like this: [/] * = rw [/Delta/trunk/qsrc/strategies] mchen = rw gricardo = rw * = Try [/Delta/trunk/qsrc/strategies] * = mchen = rw gricardo = rw or make a group and tell this directory to [/Delta/trunk/qsrc/strategies] ~...@group = @group = rw -- WBR, Andrey Repin (anrdae...@freemail.ru) 17.12.2009, 4:14 Sorry for my terrible english...