Salakhetdinov Shamil
mcp2004 at mail.ru
Sat Apr 4 15:06:14 CDT 2009
Hi Mark, Thank you for your investigation. The "Step 4 Locking and Updating Beautiful Solution" is what we have to use. And it shoudln't be that limiting if we will follow some discipline and good OOP&D principles. The latter will be needed when we will start doing a lot of coding and that should not happen in the near future I hope. Therefore we have enough time to get self-disciplined to use "lock - edit - commit" everytime we're going to change .csproj and .sln - and that happens when we add/delete folders/files from .csproj and .sln - IOW that's a very short period of time. And because we're working on different forms and reports we can lock them for longer time without limiting/getting standstill other team members. Good OOP&D principles applied, which result in small class files with very well targeted responsibilities as well as the .NET Framework feature of partial classes should allow our team members to have different source files locked when needed for relatively short period of time therefore "locking collisions" may happen but not too often I'd expect... Here I'm with my weekend's optimistic point of view :) Thank you. -- Shamil -----Original Message----- From: Mark Breen <marklbreen at gmail.com> To: Salakhetdinov Shamil <mcp2004 at mail.ru>, "Discussion concerning Visual Basic and related programming issues." <dba-vb at databaseadvisors.com> Date: Sat, 4 Apr 2009 12:39:26 +0100 Subject: Re: [dba-VB] SCRUM: Check out > Hello All, > I did some playing with SVN this morning and I wanted to report here the > results as briefly as possible. > > Step 1 Getting files and commiting changes - One person at a time > I created a file named "Test file to be locked and tested.txt" and I logged > on to my machine using username marklbreen and I logged onto a second PC > using username mark2. I acquired the files from one project onto both > machines and ensured that both machines were up to date. I then made an > entry in the text file which consisted of one line of text, with the > characters t1. I then commited those changes to the repository. This > worked well. > > I then updated my second pc, which displayed the latest version of the file, > correctly, I then made a an update on second pc and commited those changes. > That also worked well. > > Step 2 Two people working on files - Messy > I then made changes on the two machines simultaneously and attempted to > commit those changes. This is a messy place to be in. I have some screen > shots, that I have upload to a folder named screen shots by Mark to > our repository. In summary, it is possible to review the changes made to > both files, and attempt to merge the changes. IMVHO, this is a nightmare > and I have been there in the past on the global project I mentioned and is > very easy to grind the project to a complete standstill. > > Step 3 Try to Get a lock, always with latest version - works well, cannot > create conflict > So then I tried the Get Lock Functionality. This works simply and seems to > work very well. Again, taking my simple single text file as the example. I > get a lock on machine one, make the changes and commit the changes. So Far > So Good (SFSG). Note that the lock is released automatically when I commit. > Then I switch to the second machine, get the latest version and get a lock, > make the changes and commit. SFSG. Note again, the lock is released when I > commit. > Then I switch back to the first machine and get a lock and made some edits > locally. I do not at this point commit. > Then I switch back to the second machine an request a lock. This lock > isrefused, > because machine one has the lock. I have to wait. > > > Step 4 Locking and Updating Beautiful Solution > Finally, I created a situation where Machine A has the latest version and > nothing is locked. > Machine B is also latest version and no locks exist. > I Lock a file on Machine A and start making Edits. > I always know that machine B cannot gain a lock at this point. > I commit all my changes on Machine A (note that locks are released) > Now Machine B attempts again to request a lock on the file. SVN reports to > the user that the file on the repository has been updated, and asks would > you like to get the latest version before you lock the file. > This worked very well on my test file. > > > Summary. > Now that we have multiple users checking out files and checking back in, we > need to move from the purely repository model, to the "check out - make > edits - check in" model. I have tested it with one file, and it seemed to > work well. However, there are open questions, such as > > Can this type of file locking work for you as developers, without locking > permanantly the sln and csproj files? > Do we need to do more testing with complete projects and solutions, as > opposed to my simple text files. > Would some playing with two or three people simultaneously be a good idea > first to get the check out - edit - check is model working with a file, then > with a folder, and finally with a solution and project. > > Have a think about what you want and let me know. If you want me to create > second users for some or all of you, let me know also, ie Shamil and > Shamil02. > > Thanks > > Mark > > > > > > > 2009/4/3 Salakhetdinov Shamil <mcp2004 at mail.ru> > > > > > Hi Gustav, > > > > Yes, I see this LOck feature in Visual SVN but will that help to resolve > > conflicts or not - I'm not sure about that: > > > > - imagine you get lock on a form, make the changes and then commit them > > and > > - somebody else does make the changes for their local version of form > > (version of code you started with ) and then commits the changes after your > > commits. > > > > Do you expect SVN server will be able to properly merge such updates of the > > source code? (source code will get lines' inserts/updates/deletes in several > > places of several files when somebody edits a form in design mode). Am I > > missing something? > > > > We should probably try how it works? - for that trial we have to have to > > create a test form and to have an online chat (MS Messenger, GoogleTalk, > > Skype ?) and do chat and do locks, edits, commits, updates to see what > > happens locally and on server side... > > > > Thank you. > > > > -- > > Shamil > > > > -----Original Message----- > > From: "Gustav Brock" <Gustav at cactus.dk> > > To: <dba-vb at databaseadvisors.com> > > Date: Fri, 03 Apr 2009 12:41:45 +0200 > > Subject: Re: [dba-VB] SCRUM: Check out > > > > > Hi Shamil > > > > > > It should be noted that prior to start working on an existing form you > > must check it out by locking it. > > > I don't know how to do that manually, but with VisualSVN installed you > > just pick VisualSVN from the popup menu of the form and select Get Lock and > > finish the task. > > > > > > As I understand it, the lock will be released when you later commit the > > form changes. > > > > > > /gustav > > > > > > >>> Salakhetdinov Shamil <mcp2004 at mail.ru> 03-04-2009 11:54 >>> > > > > > > - we're in a bit of trouble with us editing/committing to SCC the same > > .NET WinForms as when one makes design changes in them then local source > > code gets changed in several files - as result SVN commit can't resolve > > source code changes' conflicts on committing local code changes. .. > > > > > > > > > _______________________________________________ > > > dba-VB mailing list > > > dba-VB at databaseadvisors.com > > > http://databaseadvisors.com/mailman/listinfo/dba-vb > > > http://www.databaseadvisors.com > > > > > > > _______________________________________________ > > dba-VB mailing list > > dba-VB at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/dba-vb > > http://www.databaseadvisors.com > > > > > >