Re: History split after server-side mkdir/mv
On Thu, Oct 27, 2016 at 4:04 PM, Dario Niedermannwrote: > I have a repository I had made in a pinch, without any directory > structure, just adding files to the root. > > When the time came to add some method to the madness, I created > the 3 canonical directories, then moved (server-side) all files to > 'trunk/'. Now, when I issue `svn log' in my freshly checked-out > working copy, I face the following situation: > > * 'trunk/' only remembers revisions since when it was created; > > * the single files within 'trunk/' remember and show their full >history; > > * when I `cd' to the working copy's "root" ('trunk/..') I see >everything: from 1 to HEAD, including all changes to 'trunk/'. > > Now, since no history was lost, this is not a real problem. I'd just > like, for 'trunk/' (i.e.: when I'm in 'trunk/' and issue `svn log') to > see everything back to revision 1. So I guess the question is: is there > a way to tell 'trunk/' that it also "owns" the repository root history > up to its birth? You'll need to reparent, this can only be done with dump Load the dump into a new repo with svnadmin load --parent-dir /trunk ... If you have already done the move there's a bit of an annoyance because if you reload the dump it will result in /trunk/trunk. I think you could dump the repo, take the first part of the dump file to load everything before the move in the new repo under /trunk and then load everything after the move (leaving out the move revision) to add the last commits under / . -- DISCLAIMER http://www.tvh.com/glob/en/email-disclaimer "This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message."
Re: Data loss
On Thu, Oct 6, 2016 at 4:26 PM,wrote: > Is it possible that old data are deleted subversion after a while? > I've experienced that with 2014 data back, you know it is? No, not automatically, not without a serious effort. (The only way to delete old data is to dump, filter and load the repository, which certainly doesn't happen by accident.) If you are using tortoisesvn to look at your history it doesn't automatically show all history for performance reasons when looking at the history log, which can be confusing if you don't know it. But there are 'Show all' and 'Next 100' buttons at the bottom of the screen to go back further in time. -- DISCLAIMER http://www.tvh.com/glob/en/email-disclaimer "This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message."
Re: Path-based authorization buggy when using SASL-LDAP
On Sat, Nov 24, 2012 at 12:12 AM, Markus Karg k...@quipsy.de wrote: I wonder why this should produce this effect? I mean, why is it working with 99% of all paths, but not with some others? Say that you are logged in as Markus (instead of markus), if some authz rules refer to Markus and others refer to markus, or some rules refer to * and others to markus, only the rules refering to markus would 'fail'. If tthis is not the case force-username-case isn't going to help you and you have another problem. Kind Regards, *JAN KEIRSE* *CORPORATE SERVICES* • *Specialist Software Developer*
Re: Path-based authorization buggy when using SASL-LDAP
On Mon, Nov 26, 2012 at 9:28 AM, Markus Karg k...@quipsy.de wrote: I am using aliases (as typical with LDAP), so the cause you described should not happen. Also, everything is lower case (alias names, group names, etc.). And I do not have any relation between the rules‘ paths and the failing paths, as I said initially. ** Okay, than you have another problem. ** Also, I did not find a documentation on „force-username-case“. Can you point me to a description on the web? J 11 Oct 2010: http://mail-archives.apache.org/mod_mbox/subversion-commits/201010.mbox/%3c20101011192637.0d3772388...@eris.apache.org%3E So it was introduced after 1.6.12 was released (21 Jun 2010).
Re: Path-based authorization buggy when using SASL-LDAP
Just a wild guess: does your username (in AD or as you entered it in the svn client) have the same case as the authz file? Windows doesn't care but the authz file does. My apache configuration has this setting to accomodate for this: AuthzForceUsernameCase lower I _think_ svnserve can do the same thing with force-username-case = lower Kind Regards, *JAN KEIRSE* *CORPORATE SERVICES* • *Specialist Software Developer* T +32 56 43 42 45 • F +32 56 43 44 46 • jan.kei...@tvh.com *TVH GROUP NV* Brabantstraat 15 • BE-8790 WAREGEM T +32 56 43 42 11 • F +32 56 43 44 88 • www.tvh.com On Fri, Nov 23, 2012 at 4:50 PM, Markus Karg k...@quipsy.de wrote: Hello Subversion Community, ** ** do you know any relationship between LDAP and paths in svn? ** ** I am running svnserve 1.6.12 on Debian 6.0.6 „squeeze“ and it works really well, but now I wanted to switch from plain passwd file to SASL-LDAP (ActiveDirectory) based authentication and trapped into a really, really weird problem: On **some** paths and files in my repo I cannot write anymore („Access Denied“), while I still can read them and write all others! ** ** This is strange since: **- **It happens only with **some** paths and files and I do not see any common pattern! **- **I have **not** set up any special treatment oft that paths or files in my authzfile! **- **All aliases are in one group that has **„rw“** access declared in the authzfile, and there is **no** separated „r-only“ rule declared on **any** path or file for this group! **- **It works **perfectly** with use-sasl=false, i. e. with plain passwd file – the problem **only** occurs when I do use-sasl=true!** ** ** ** It is totally weird, as I do neither see any relationship between that paths and my authzfile configuration, nor do I see any relationship between LDAP and that paths! ** ** For me it simply looks like a bug in svnserve 1.6.12! L ** ** It would be great if anybody could tell me some ideas what I can do, as I want to switch from plain passwd file to SASL-LDAP ASAP. J ** ** Thanks! -Markus
Re: Merging repositories = UUID conflict
On Mon, Oct 15, 2012 at 5:44 PM, Thorsten Schöning tschoen...@am-soft.dewrote: Guten Tag Jan Keirse, am Montag, 15. Oktober 2012 um 16:08 schrieben Sie: However, when I try to svn relocate the working copies from repository B to repository A because the UUID is different between the 2 servers. I had hoped I would be able to just relocate and after an update svn would see nothing changed between the version number increase and just accept it. But it's not just the version numbers different from repo B to A, all content before repo B was loaded into A is missing from working copies for repo B. We don't have any checkout of the entire tree, but it does explain why allowing this could get overly complicated. - Is there a way to merge the repositories without having to checkout all working copies again? You only need to checkout the working copies from that repo which was loaded into another one, because all other working copies just need updates. Else the answer is no. Okay, that's clear. - Is the concept of dumping a repository and loading into another repository that already have revisions something safe? Yes, I did it myself some months ago for comparable reason like you: The content of B was better placed in A and I wanted to keep all the history of B. Or is this risky (one odd thing that's instantly visible is that revisions with high numbers can be older than revisions with lower numbers?) It's only risky if you use tools which work on dates, not revisions, else devs need to know the fact of the merge to not wonder on such revisions, of course, but from my experience as development continues in the target repo of the merge there's no real problem as devs will focus on their newly created revisions. Thanks for your feedback. We'll go ahead and do new checkouts.
Re: svnsync between repos
On Mon, Mar 12, 2012 at 3:51 PM, dhanushka ranasinghe parakrama1...@gmail.com wrote: Hi.. svnsyn happen between two repos right ? , is it possible to use svnsync to sync part of a repository ( foder in side svn like trunk) to separate new repository Eg-- here trunk is folder inside the svn repository repo http:/svn.master.com/repo/trunk/ - svnsync - http//svn.mirror.com/newrepo/ yes it is, this is explicitly mentioned in the manual: http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.replication.svnsync-partial Kind Regards, JAN KEIRSE -- DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
svnsync, discard master and start using slave as new master
Hello, I have a master and a slave. Now I want to discard the current master and start using the slave as the new master (creating a new slave on another server and stop the server that currently runs the master.) I think the steps to do this are the following: * Change authz on the master so that nobody can commit. * Sync the slave one last time so it's certainly up-to-date. (Shouldn't be necessary for us because this is done automatically in a post-commit hook of the master.) * Remove the svn:sync-* properties from revision 0 of the slave. * Change authz and hooks on the slave to what they used to be on the master. * Have everyone relocate their working copies to the new server. * Start syncing a new server so we have a slave just in case something goes wrong on the master. Is this correct? Is there something I forgot? Version: svn 1.6.17 fsfs, served by Apache 2.2.21 on windows, old server = 32bit, new server = 64 bit. Kind Regards, JAN KEIRSE CORPORATE SERVICES • Software Engineer
Re: Apache and subversion per directory authorizations with different group source.
2011/11/24 Dolf Andringa dandri...@proigia.nl Dear people, I have setup Apache 2.2 and subversion. I'm using an Apache module for authentication and authzsvnaccess to define groups an manage per directory authorizations for them. But this requires me to define the groups and memberships in the authzsvnaccess file. I already have setup a different authorization source in Apache for other sites/directories (mod-auth-mysql). Is it possible to use the authzsvnaccess file for defining which users and groups have what access to which directory, but refer to the group names as defined in the other authorization module? Right now I need to manage group memberships both in a database and in the authzsvnaccess file, while I need to maintain the usernames and password only in the database.He only solution today is to write a piece of code that exports the groups As far as I know the only solution available today is to write a tiny application that exports the groups from the mysql database and builds an authz file based on that. If you know a little coding (in any language that can connect to mysql) that shouldn't be very difficult. The groups a user belongs to are not passed to the authz module. All it knows is the username.
Betr.: authorization external database
xrew x...@yandex.ru schreef op 11/10/2011 20:40:45: Hello. I want to use external database (e.x. MySQL) for authentication and storing access rights for Subversion. What is the best way to do it? Is it task for hooks, or I have to develop external module and somehow link it with subversion, or I need to rewrite some source code of Subversion? That depends on wether you want to use svnserve or apache httpd to serve your repository. If you choose apache you could probably use mod_auth_mysql, I have not done this myself though. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Subversion working copy via Samba
Dalibor Karlović d...@burza.hr schreef op 07/10/2011 09:52:01: Hello, I don't know is this a Samba or Subversion (or my faulty config) related issue so I'll start here. I'd like to clarify that the need to have just one working copy (and not one per user on his/her local disk) is vital here. Can we know why? Also, I'd like to note that this same mail was sent to Samba's list as I can't yet figure out is this a Samba or SVN issue. It's Subversion. Target: - check out a working copy to this directory - allow only members of @Production to access it - allow various Subversion clients to be used via Samba on the working copy Then do the checkout from the client. - allow for using SVN directly on the server (not via Samba, MUCH faster for large operations like checkout) without the need to fix permissions afterward (seamlessly) No, impossible. Working copies are platform dependant. Either always access them from windows or always access them from linux. If it occasionally work it's coincidence, it may fail tomorrow. Now, I get most of it done: - I login via SSH and do a checkout - access the share via Samba (Linux, Fedora 14), it works - can commit/update/delete on either side, no issues That's just coincidence, it may fail with the next version of SVN. But, as soon as my co-worker on Win7/TortoiseSVN deleted a file (via Samba), he gets (Q:\ points to this share): Commit succeeded, but other errors follow: Error bumping revisions post-commit (details follow): In directory 'Q:\webs\censored\trunk\images' Error processing command 'committed' in 'Q:\webs\censored\trunk\images' Can't set file 'Q:\webs\censored\trunk\images\.svn\prop-base\avatar_small.png.svn-base' read-write: Access is denied. See it can't work ;-) and from then on, the working copy is so badly damaged (locked, missing files/directories), etc. that I haven't found a way to fix it. Examining the permissions on the file in question, it seems Subversion sets the access mode to r--r--r-- as to avoid tampering (?) and the Windows client isn't able to change it. The other reason might be that one user is changing the file another user owns, but they're in the same group. So, my question is: is there anybody out there who has a similar setup which in fact runs OK? Also, am I missing something obvious here (except for the weird SVN usage pattern)? Working copies are platform dependant. You should only ever access them with one platform. You can use different clients (ie TortoiseSVN and svn.exe) but they have to be on the same platform. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: Betr.: Subversion working copy via Samba
Dalibor Karlović d...@burza.hr schreef op 07/10/2011 11:09:08: Jan Keirse wrote: I don't know is this a Samba or Subversion (or my faulty config) related issue so I'll start here. I'd like to clarify that the need to have just one working copy (and not one per user on his/her local disk) is vital here. Can we know why? Sure, I'll lay it out: - we're a small web development studio - we have a development server which exposed one share to the team via Samba - if we're developing a new site called foo.com, we create a working copy on the server and make it available as foo.com.web in our local domain which makes it accessible from each workstation right away - this gives us a point to which anybody working on the site can hook up to and we all can see exactly what's going on at any point in time - also, the less tech-savy guys/gals (designers, copywriters, PMs) don't need to setup their own entire work environment (server, database, virtual hosts, etc), they just open the share and a browser and start working. - we cannot automate the procedure because there's alot of different systems on staff (WinXP, Win7, MacOSX, Fedora, Ubuntu, etc). The one working copy per user has too high of a (time) cost here. I don't think it should be a lot of work to set it up to work with local sandboxes: * make a project containing the apache config files for the various platforms. That way you only have to create them once for each platform, and most parts of that will largely be copies. * standardize paths: ie everything should go under either c:\www or /www, so that config files don't need to be modified. Developers just go to foo.localhost instead of foo.com.web. You can do an automatic checkout of what's committed to foo.com.web to show what's under development. Setting all that up shouldn't take very long. If you still don't want to do that I think your best bet would be to do everything related to subversion on the server, maintain the working copy on the server, do all commits from there. You can still access the working copy from Samba to do the actual coding, just don't commit anything from windows. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: Betr.: Re: Betr.: Subversion working copy via Samba
Dalibor Karlović d...@burza.hr schreef op 07/10/2011 14:15:39: Jan Keirse wrote: Setting all that up shouldn't take very long. Yeah, for one site, but this would be like num_of_sites * num_of_people = ALOT. :) Not really. You need only one httpd.conf for all sites and people, with only very small variations for each platform. For example you should be able to create one apache httpd.conf containing num_of_sites of virtual hosts, and an /etc/hosts (c:\windows\system32\drivers\etc\hosts on windows) containing 172.0.0.1 site1.local, 172.0.0.2 site2.local,... The /etc/hosts can be the same for all hosts and users, the httpd.conf will contain a little variation for each platform you use, but the virtual hosts will all be the same. These files can then be deployed to all people involved. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
running 2 update commands on one working copy at the same time
Hello, I've got 2 batch processes, one compile CHUI files and another compiling WIN32 files. They use the same working copy and update the working copy before starting. I wonder if this is safe: if the 2 update commands run at the same time, will this cause issues? So far it appears to work just fine, but I'd rather be sure than sorry. ps.: Both compilers run on the same machine and just invoke svn.exe --non-interactive --accept theirs-full --depth infinity update c:\workingcopyname, so there won't be a problem with incompatible clients, the client is the same. I just wonder if I could have problems with a locked working copy or something like that. The working copy is only used for compiling, there are never any changes in the working copy. SVN Server Client: 1.6.17, OS WIN32, server = Apache. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: running 2 update commands on one working copy at the same time
Stephen Butler sbut...@elego.de schreef op 27/09/2011 10:58:26: On Sep 27, 2011, at 9:20 , Jan wrote: Hello, I've got 2 batch processes, one compile CHUI files and another compiling WIN32 files. They use the same working copy and update the working copy before starting. I wonder if this is safe: if the 2 update commands run at the same time, will this cause issues? So far it appears to work just fine, but I'd rather be sure than sorry. ps.: Both compilers run on the same machine and just invoke svn.exe --non-interactive --accept theirs-full --depth infinity update c:\workingcopyname, so there won't be a problem with incompatible clients, the client is the same. I just wonder if I could have problems with a locked working copy or something like that. The working copy is only used for compiling, there are never any changes in the working copy. SVN Server Client: 1.6.17, OS WIN32, server = Apache. Subversion operations that modify the working copy, such as update, use a Subversion-internal administrative locking to ensure that the operations don't collide. Great. It's possible that build process B runs an update while build proces A is already compiling. Then the effective source code of build A might include files from different revisions, which is difficult to reproduce. I am aware of this risk but it won't cause problems in our setup: If this happened a second compile would be triggered automatically. I was only worried the working copy could get corrupted causing the update to fail, but if subversion handles this I should be safe. DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Lost list of Search Utilities
Phil Pinkerton pcpinker...@gmail.com schreef op 23/09/2011 13:28:00: A while back I posted a question about various Application/utilities that provide a way to Search Subversion Repositories. My email got trashed (MS BSOD disk crash) and I no longer have that wonderful list. If by chance someone has a list or knows of such utilities or application open source or paid and can post again I'd be most thankful OpenGrok: http://hub.opensolaris.org/bin/view/Project+opengrok/WebHome (actively developped) SvnSearch: http://svn-search.sourceforge.net (appears dead, last version is very old) FishEye: http://www.atlassian.com/software/fisheye/ (actively developped) Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Setting up Jenkins and Subversion for multiple LDAP domains.
David Weintraub qazw...@gmail.com schreef op 06/09/2011 17:12:41: This is really part of the same question, but it involves both our Subversion repository and Jenkins. We want to use our Windows Active Directory to log into Jenkins and as our permissioning scheme in Subversion. Subversion uses Apache httpd. First in Subversion: We have the following setup for the mfxdomain: Location /src DAV svn SVNParentPath /opt/cm/svn_repos AuthType basic AuthName MFX Repository AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL ldap://mfxdomain.mycompany.com:3268/dc=mycompany,dc=com?sAMAccountName; NONE AuthLDAPBindDN CN=svnuser,OU=Users,DC=mycompany,DC=com AuthLDAPBindPassword swordfish Require valid-user /Location This works great. Anyone in the mfxdomain is able to log in. However, many of our users are actually in the effdomain, so we need to verify a user is either in one of the two domains. How do I set this up? Do I need a new location, or do I double the AuthLDAP lines? In Jenkins, we use the active directory plugin to verify our logins. Is it possible to specify two Active Directory domains? From my apache httpd.conf: ... LoadModule authn_alias_module modules/mod_authn_alias.so ... AuthnProviderAlias ldap olddomain AuthLDAPURL ... NONE AuthLDAPBindDN ... AuthLDAPBindPassword ... /AuthnProviderAlias AuthnProviderAlias ldap newdomain AuthLDAPURL ... NONE AuthLDAPBindDN ... AuthLDAPBindPassword ... /AuthnProviderAlias Location /svn DAV svn SVNParentPath C:/Repositories AuthType Basic AuthName My Subversion server AuthBasicProvider newdomain olddomain AuthzLDAPAuthoritative off AuthzSVNAccessFile c:/repositories/authz AuthzForceUsernameCase lower SVNIndexXSLT /svn.xsl require valid-user /Location And in both, how do I know if someone is in one domain or the other? Do they need to prefix their login with the domain? I have no idea about that. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: Issue when running svn server on windows, any help please?
Roland Le Franc roland.lefr...@free.fr schreef op 30/08/2011 12:09:22: Hello Thank you for your response, I am still facing the issue. I do all these operations on a private home network,between 3 PCs, so I don't need to secure the svn server too much, I set read rights for anonymous access, and use http (not https). TortoiseSVN and svn commandline give the same results: svn ls svn://localhost/ works fine svn ls svn://badname/ returns with an error svn ls svn/192.168.1.102/ and svn ls svn/nameofthepc/ hang forever, and the apace logs give nothing specific. I have copied the last lines of the apache logs below What you are saying here does not really make sense. You're serving with apache but use svn:// That's for when you're serving with svnserve. You should be using something like svn ls http://naemofthepc/reponame . If svn ls svn://localhost really works you're probably using both Apache and svnserve, there's no need to do that. Could you provide the contents of httpd.conf? That would show if svn is configured properly and what the url should be. DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: Index of Subversion add-on projects and products
Ryan Schmidt subversion-20...@ryandesign.com schreef op 11/06/2011 01:37:24: On Jun 10, 2011, at 17:09, k...@timpanisoftware.com k...@timpanisoftware.com wrote: I was wondering if there is some sort of global list of Subversion plug-ins, etc., including both open source projects and commercial products. For example, it would be nice if there was a unified list of all the different svn clients, integrations with build systems, etc. The Subversion project used to maintain such a list but it became unwieldy and was deleted. They now recommend you use Google to find such things. You can still find the last version of this list in the 1.6.x branch but it is gone from trunk: This will also provide 'quite a few' hits: http://freshmeat.net/tags/subversion and http://freshmeat.net/tags/svn DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: RE: Index of Subversion add-on projects and products
Kevin Dietz ke...@timpanisoftware.com schreef op 11/06/2011 04:42:19: I can see why the Subversion organizers stopped maintaining the list internally. I wonder if there would be any interest in a community server and/or wiki where various projects and vendors could post their information, and a forums server where people could discuss tools individually. I think it would be nice to have all the information in one place instead of having to Google all over for it. Isn't that exactly what freshmeat offers at http://freshmeat.net/tags/subversion ? Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
RE: Index of Subversion add-on projects and products
Markus Schaber m.scha...@3s-software.com schreef op 14/06/2011 11:54:04: Isn't that exactly what freshmeat offers at http://freshmeat.net/tags/subversion ? I'm not sure whether freshmeat will accept all Subversion-related Software (they seem to restrict themselves to Unix, cross-platform and PalmOS, and have a tendency to free / open source software). Certain Windows-Only software like TortoiseSVN, SharpSVN or AnkhSVN are not mentioned there. Good point, I never noticed it didn't list windows only software, guess it was too good to be true. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: how to avoid text and tree conflict
su heng ste.suh...@gmail.com schreef op 04/04/2011 15:41:38: Hi, I read the SVN book, as there are three type conflicts: text, tree and properties conflict. However, I wanna know why it is a conflict. For example, if there is a text conflict when I do merging code, I just know there is an conflict but don't know why it is a conflict. So could u provide me some resource or hints what are the judge rules for SVN to address it is a conflict, in this case, I can avoid more conflict when I'm coding or merging. I concert the text and tree conflict more. Start version is A. B and C are changes to A. Change B says line 3 is 'cool!' Change C says line 3 is 'boring!' If you want to merge change B and C there's a conflict, because one change says the opposite of the other. Similar: Start filename is A . Change B says A should be renamed to B. Change C says A should be renamed to C. If you want to merge B and C what should the filename be? B or C? Kind Regards, JAN KEIRSE ICT-AFDELING ? software quality systems ? software engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: Betr.: how to avoid text and tree conflict
su heng ste.suh...@gmail.com schreef op 04/04/2011 16:31:17: Hi Jan, Please kindly refer to my below comments. Regards, Su Heng On Mon, 2011-04-04 at 16:03 +0200, Jan Keirse wrote: su heng ste.suh...@gmail.com schreef op 04/04/2011 15:41:38: Hi, I read the SVN book, as there are three type conflicts: text, tree and properties conflict. However, I wanna know why it is a conflict. For example, if there is a text conflict when I do merging code, I just know there is an conflict but don't know why it is a conflict. So could u provide me some resource or hints what are the judge rules for SVN to address it is a conflict, in this case, I can avoid more conflict when I'm coding or merging. I concert the text and tree conflict more. Start version is A. B and C are changes to A. Change B says line 3 is 'cool!' Change C says line 3 is 'boring!' If you want to merge change B and C there's a conflict, because one change says the opposite of the other. [suheng] : thanks, However, your example just covers one condition. Can you give me a basic conflict rule policy of SVN so I can conclude all conditions? As your example, can I thought whenever a low revision(C) merge to a high revision(when B merge to A, A will be A+1), a text conflict will be pop up whatever the line is changed? In your example, the precondition is file a is revision A, then the same file under change B is revision B = A + n(n0), and same file under change C is revision C = B + n(n0), when change B is merged to A, we must commit it firstly(at this time revision A will be rise to A+n B A+n C, then do another merge I mean change C will be merged in A+n, then conflict out. I think if C is a branch of from revision B+n(n1) but not A, when we merge C+n(n1) won't involve conflict, right? Hmm...I think it has little confusing. you can ignore my explain, just suggest me the basic conflict policy is appreciated.^_^ Ok, you misunderstood, C has nothing to do with B, it does not come after B. As a general rule: if you changed the same line there is a conflict. I'll put it another way. Imagine at some point velkswagen makes a car, and stores the information about that car in a file, named possat.txt. The file could have the following contents: --- brand=vw model=possat tires=4 engine=1900 horsepower=110 --- Now at some point VW decides there possat can be sold with another logo as skida octevia. So they branch the file: octevia / possat And the file becomes: --- brand=skida model=octevia tires=4 engine=1900 horsepower=110 --- After a few more years they decide to sell the same car under the siat Brand: octevia / possat \ somesiat --- brand=siat model=somesiat tires=4 engine=1900 horsepower=110 --- Now a clever engineer at siat notices that a car does not have 4 tires but 5, in case you hit a nail along the road you get an extra one in the trunk to get you home. So he changes tires to 5. Now we have 3 files, possat, somesiat and octevia. They all share the same origin, the possat is long out of production so we don't care about that anymore, but we want the octevia fixed. If you merge from somesiat to octevia, with the possat as mutual ancestor, you're going to get a problem, not with the tires but with the brand and model, because somesiat changed brand and model but octevia did as well, who holds the truth, what brand and model should be in the octevia file? Kind Regards, JAN KEIRSE ICT-AFDELING • software quality systems • software engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: RE: Hook help
Neson Maxmelbin (RBEI/EMT5) maxmelbin.ne...@in.bosch.com schreef op 21/02/2011 15:54:24: I am trying to write a hook to prevent deletion of elements through a pre-commit hook. If you're not using the bindings you'd want svnlook, probably svnlook diff. But, do you really want such a hook? If a user has permission to add stuff they should be allowed to also unwind any mistakes, providing it's not a tag or something. Max : What do you mean by bindings? And also svnlook seems to give info about already commited stuff.. Svnlook changed gives me info abt previous commit... (unless I got everything wrong .. :-) ) Yes, I want to have deletion control on atleast one repo. The pre-commit hook will get two input parameters. The first is the repostiory path, the second is the transaciton ID. You need to pass this to svnlook: svnlook diff c:\somerepository --transaction sometransactionId This will allow you to watch the commit that's begin executed. Have a look at the manual: http://svnbook.red-bean.com/nightly/en/index.html In this case you need http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.tk.svnlook but if you have not yet read the entire manual, you really should, it will save you a lot of time and headaches! DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: htpasswd without apache
Ada Battousai adabattou...@gmail.com schreef op 18/02/2011 06:36:40: I'm trying to make a local repository (protocol svn://, without apache) works with a password file with htpasswd entries. But my svn does not recognize the passwords added there. How can I configure svn to make it work? That won't work. The htpasswd file is used by apache, not by SVN itself. If you want to use just svn:// (not svn+ssh://) I _think_ the only option is a plain text file containing usernames and passwords: http://svnbook.red-bean.com/nightly/en/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth.users DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Live replication to backup server
Oliver Marshall oliver.marsh...@g2support.com schreef op 21/01/2011 09:57:34: Hi, Does anyone know of any manageable way to have SVN (Ubuntu 8 LTS currently) replication all changes to a secondary server? Im toying with using Rsync but I?d prefer to use a hook in SVN ideally to ensure that we only copy files when they are fully checked in. Subversion comes with a tool for that: http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.tk.svnsync Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: RE: Betr.: RE: Questions about svn:externals
David Aldrich david.aldr...@eu.nec.com schreef op 20/01/2011 10:24:28: Hi Jan I've changed my mind, there is something that may be better than externals, although it requires a little trick. You should be able to create a commit hook that checks if the authz file reflects the restrictions you want on a specific folder (*/thesecretfolder/*) for the branch (/branches/somebranch/thesecretfolder) and if not add the restrictions. I get your drift but may I check I am understanding you correctly? The authz file would contain: */thesecretfolder/* @privileged_group = rw * = svn does not expand wildcards in authz but I guess it will not complain about such an entry. The hook reads authz and does the comparison of the actual commit path against this wildcard path using regular expressions (or whatever). Am I right so far? No, that would not stop read access. What I wanted to say is that if you commit a file a commit hook checks if it's path indicates it should be mentioned in the authz file (because for example the path contains a foldername thesecretfolder) and if it finds such folder and does not find an entry for it in authz file it adds the folder to the authz file. If a developer branches trunk to branches/myexperiment the commit hook will fire and detect the new branch and adjust permissions to the secret folder in the authz file. (add /branches/myexperiment/thesecretfolder.) This would avoid accidents. The only thing it would not catch is if a developer deliberately branches /trunk/yourproject/yoursecretfolder to /branches/makethesecretpublic, but off course if you don't trust your developers not to do that you'd better not give them access to the code in the first place because there would be smarter ways to deliberately publish a company secret (methods that are not so easy to track back to the offender.) The hook must then check that the committer has rights to commit to that path. So the hook uses the access permission specification in the above entry, and checks that the committer belongs to 'privileged_group'. Then the hook allows or blocks the commit. Am I correct? As said above that would stop commits but not checkout. I don't think there's a pre-checkout hook. The advantage of this approach over externals is that you'll have atomic commits, the version of the 'secretfolder' will be linked to the versions in the rest of the repository,... And if one day the suggested wildcard feature is implemented all you'll have to do is update the authz file to contain a wildcard, remove the commit hook and you're done. Yes, I like your idea, thanks. I am quite opposed to using externals for this since I realised that externals are not well supported in branching and merging. I did think of another approach before receiving your suggestion. I thought of having a proprietary 'my_authz' file which allows wildcards. Then our own mangler would check what branches exist, read our my_authz and generate a real authz file with all the necessary expanded paths and permissions. Could be run regularly by cron (or whatever). My suggestion is basically doing this but not with cron, but in the commit hook. If you do it with cron you'd have a small window where the data would be public. However, your suggestion is more elegant. Not sure which would be more efficient. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Questions about svn:externals
David Aldrich david.aldr...@eu.nec.com schreef op 19/01/2011 10:02:43: Hi I wonder if anyone would answer the following questions about svn: external for me please? 1) Subversion allows you to commit a change within the directory that uses the svn:external property. This change will not be committed to the referenced (source) directory/repo. I can't imagine a circumstance where one would want to do this, so how can we prevent such commits being made? Why? Imagine your project references an external project. While working on your project you notice a bug in that external project. You can fix the error and commit, without having to do a seperate checkout first, isn't that a good thing? 2) What would happen if the developer did not have read access to the repo that is referenced in the svn:external? Would a checkout of the project that uses the external complete without error, except that the external code would not appear? My guess is that the project will be checked out without the external code, but that you will get an error message about that, I'm not sure though. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: Betr.: Re: multiple locks on a single file
Johan Corveleyn jcor...@gmail.com schreef op 19/01/2011 09:38:41: On Wed, Jan 19, 2011 at 9:00 AM, Jan Keirse jan.kei...@tvh.be wrote: Ryan Schmidt subversion-20...@ryandesign.com schreef op 18/01/2011 22:34:24: On Jan 18, 2011, at 08:15, Jan Keirse wrote: I don't think Subversion's locking mechanism is something that can be modified in the way you suggest (not without rewriting a lot of the Subversion source code). I also don't think you need a locking mechanism at all. Just don't lock anything. Let people work concurrently. Yes, sometimes you may need to resolve conflicts. Hopefully it won't be too difficult to do so. I suggest you just try this way of working and see what you think. I think there will be fewer conflicts than you anticipate. I'm afraid we started using the scheme above in CVS because there were problems. The UI designer we use is so kind to randomly rearange it's UI creation code every time you change the UI (move a button change a label, add something and it looks as if you made a hundred changes). As long as you only change logic there's no problem, but as soon as you change something to the UI design there are a random amount of changes that don't make any sense at all, merging them is next to impossible and trying usually results in corupt files. Well, wouldn't the only safe way then be that people lock the entire file (like it is supported in SVN)? If locking only part of a file, and the UI designer rearranges everything so you interfere with parts outside of you locked area, that will be a problem. Or can the user predict what part of a file is going to be touched when he does particular changes in the UI designer? Regardless, as Ryan said, locking only part of a file is not possible in SVN, and I think it would require a lot of changes to add such a feature. Maybe you can start educating your users to use only per-file locks, and where this gives too many problems/conflicts, try to refactor and split up the files? I'm not asking for a lock on part of the file, in fact if you think about it I'm not asking a real lock, i'm only asking a notification, informing the developer who else is working on the file. One file contains both automatically generated UI description (based on what you designed in a wysiwyg designer) and UI logic (which you coded in a 'section editor'). If you change the UI logic (for example code that changes the color of a field based on some data) there will be no random changes in the file. I'm not asking to automatically stop the user from changing anything, I just would like them to be notified someone else is working on the file so that they can talk to the other people to make sure they are only working on logic and not design. I could easily write a tool myself, it's a trivial thing: Create a table with - username - filename - some unique id that can be passed during commit (so I know from what working copy the commit came from to know what edit to remove) - maybe optional informative fields like hostname and date/time of creation of the 'edit' Create a tool svnedit somefilename that stores a record in the above table and returns a list of all records for that filename. Create a commithook that deletes the specific record for this file after commit. However I think this would be better integrated within subversion (creating an svn edit somefile command) because it would allow to check out the files read-only (svn edit would then make them read/write just like svn lock does, only it would not take an exclusive lock.) Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: RE: Questions about svn:externals
David Aldrich david.aldr...@eu.nec.com schreef op 19/01/2011 10:42:15: Hi I'd like to explain my high level problem, which I hoped externals would solve. Maybe someone will have a suggestion how to properly address this. Our source code is used by several developer groups. A few files need to be confidential to one group. We can set access permissions on these files in the trunk using Apache to support this. However, if a member of that privileged group branches or tags the trunk, those files will get copied to the new branch/tag and be visible to all. Subversion can't copy the permission structure across. This provides a maintenance headache. So I thought we could put the confidential files in another repo and set appropriate permissions there. The main project will bring those few files in and the access permissions of the source repo will always be imposed wherever the external appears. But this is not really what externals are meant for, so I feel unhappy about this solution. Furthermore, it seems best to always make externals use fixed revisions, which isn't what we would want as those confidential files will be continually changing. Please can anyone suggest a better way of solving this problem? In the future hopefully an authz file with wildcards will solve the problem: http://subversion.tigris.org/issues/show_bug.cgi?id=2662 Right now I don't there's anything better than externals. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
multiple locks on a single file
Hello, we would like to be able to always know who else is working on a file, so that we can communicate with each other and avoid complex merges. Case 1: If 2 or 3 users have to change the same file but one user has to make his changes in the top of the file, someone else is making changes to the bottom of the file and a third person is changing the middle of the file, there's no problem, we can all work at the same time, merging the changes is trivial. Case 2: If 2 users have to change the same section of a file it would be better if one waits for the other, because it may be hard or impossible to merge the changes. To simplify this we would like to implement some sort of 'concurrent locking': If a user wants to change a file he has to first take a lock on the file, and if others also have a lock he is informed about that (so he can have a chat and see if this is case 1 (and he can continue) or case 2 (and he should wait for the first change to be completed.)) As I understand it right now, locking in subversion is 'exclusive', if user 1 has a lock, and user 2 also wants to lock, he has to steal the lock, but when user 2 commits the changes the repository will not know someone else (user 1) is still working on the file, so if a third user takes a lock he will not be informed that user 1 is also working on the file. Could this be solved with repository hooks or will I have to implement my own 'locking' mechanism? Or would this be considered a usefull feature request? What I want is basically the equivalent of the cvs edit and editors commands. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: multiple locks on a single file
Ryan Schmidt subversion-20...@ryandesign.com schreef op 18/01/2011 22:34:24: On Jan 18, 2011, at 08:15, Jan Keirse wrote: we would like to be able to always know who else is working on a file, so that we can communicate with each other and avoid complex merges. Case 1: If 2 or 3 users have to change the same file but one user has to make his changes in the top of the file, someone else is making changes to the bottom of the file and a third person is changing the middle of the file, there's no problem, we can all work at the same time, merging the changes is trivial. Case 2: If 2 users have to change the same section of a file it would be better if one waits for the other, because it may be hard or impossible to merge the changes. To simplify this we would like to implement some sort of 'concurrent locking': If a user wants to change a file he has to first take a lock on the file, and if others also have a lock he is informed about that (so he can have a chat and see if this is case 1 (and he can continue) or case 2 (and he should wait for the first change to be completed.)) As I understand it right now, locking in subversion is 'exclusive', if user 1 has a lock, and user 2 also wants to lock, he has to steal the lock, but when user 2 commits the changes the repository will not know someone else (user 1) is still working on the file, so if a third user takes a lock he will not be informed that user 1 is also working on the file. Could this be solved with repository hooks or will I have to implement my own 'locking' mechanism? Or would this be considered a usefull feature request? What I want is basically the equivalent of the cvs edit and editors commands. I don't think Subversion's locking mechanism is something that can be modified in the way you suggest (not without rewriting a lot of the Subversion source code). I also don't think you need a locking mechanism at all. Just don't lock anything. Let people work concurrently. Yes, sometimes you may need to resolve conflicts. Hopefully it won't be too difficult to do so. I suggest you just try this way of working and see what you think. I think there will be fewer conflicts than you anticipate. I'm afraid we started using the scheme above in CVS because there were problems. The UI designer we use is so kind to randomly rearange it's UI creation code every time you change the UI (move a button change a label, add something and it looks as if you made a hundred changes). As long as you only change logic there's no problem, but as soon as you change something to the UI design there are a random amount of changes that don't make any sense at all, merging them is next to impossible and trying usually results in corupt files. Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
Betr.: Re: svnadmin load a huge file
On 1/7/2011 7:57 AM, Victor Sudakov wrote: It would be fine if the project in question did not contain almost all the files in one directory. You may call the layout silly, but CVS does not seem to mind. OTOH, I would have distributed the files over several subdirectories, but CVS does not handle moving files well. I wonder if cvs2svn is to blame that it produces a dump svnadmin cannot load. Or I am always risking that svnadmin dump may one day produce a dump a subsequent svnadmin load will be unable to swallow? I mean, if by hook or by crook, by using third party utilities like svndumptool, I will eventually be able to convert this project from CVS to SVN. Is there a chance that a subsequent dump will be again unloadable? Have you tried the following: - Copy your CVS repository (say /myreypository to /myrepositoryconv) - In the copy move the ,v files into several subdirectories (using the operating system, not using CVS commands.) - Convert the directories one at a time and load them into svn. - Once loaded into svn you can move everything back into one folder (using svn commands) if desired. Manually moving around ,v files in a cvs repository is generally not adviced primarily because it will annoy users with checked out working copies (and it's unversioned), but those working copies won't be of any use anyway once the server has been migrated to subversion so that shouldn't be a problem, so I don't think it could cause problems, but keep the original repository around just in case... Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.
alternative to CVS magic branches
Hello, in CVSNT there's a feature called magic branches. Basically it means that if you branch from head (or any other branch) the all the files in the magic branch will continue to have all changes made in the future until the point where you change them. So if you have 20 files and you change only a small number of them you only have to merge changes to the files you modified, the others always have changes in the trunk. Is the only option in Subversion to merge the trunk to the branch regulary or is there another option I missed while reading the manual? Kind Regards, JAN KEIRSE ICT-DEPARTMENT Software quality Systems: Software Engineer DISCLAIMER http://www.tvh.com/newen2/emaildisclaimer/default.html This message is delivered to all addressees subject to the conditions set forth in the attached disclaimer, which is an integral part of this message.