Register to post in forums, or Log in to your existing account
 

Post new topic  Reply to topic     Home » Forums » Zugg's Blog Goto page Previous  1, 2
Zugg Posted: Thu Mar 09, 2006 10:31 pm
CVS is wasting my time!
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Mar 11, 2006 6:39 am   
 
Yeah, that's what I mean by being "cursed". I always get the hard problems.

Fortunately, I was researching converting DFM form files from binary to text just a couple of days ago. Delphi has an option to save all new forms in text format, but it doesn't automatically convert old forms, and going through some old zMUD forms was becoming a pain. So, I had the link to a Borland article on how to convert the form resource format already in my browser history. So that was a bit lucky I guess.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Mar 11, 2006 6:56 am   
 
bortaS: Do you know how to tell SubVersion that *.RES files are binary? It thinks they are text files and that's still causing me problems.

Edited: Hmm, nevermind. I found the mime-type property that needs to be set. Seems that not all RES files were marked as text...only some of them. Don't know why.

In researching the cvs2svn conversion problem a bit more, the claim is that the files that got corrupted were not properly marked as binary in the original CVS repository. This means that they could have eventually gotten corrupted by CVS too and cvs2svn was just doing what it was told.

Hmm, maybe, but I'd still exercise extreme caution when converting CVS files. And definitely make a backup...you'll need it.
Reply with quote
bortaS
Magician


Joined: 10 Oct 2000
Posts: 320
Location: Springville, UT

PostPosted: Sat Mar 11, 2006 3:44 pm   
 
"In researching the cvs2svn conversion problem a bit more, the claim is that the files that got corrupted were not properly marked as binary in the original CVS repository. This means that they could have eventually gotten corrupted by CVS too and cvs2svn was just doing what it was told. "

ACKKKK! That's nasty!

Btw, are you using the FSFS repository format on your Subversion installation? That's the safest format in my experience. I started using BerkleyDB, but I converted. It's way easier to recover and backup. Just a heads up. That's part of the reason I created the management console for svn. I can now create repos by just setting a few settings on the main form and clicking a button.

Glad things are working for ya!
_________________
bortaS
~~ Crusty Klingon Programmer ~~
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Mar 11, 2006 6:02 pm   
 
Yep, I'm using FSFS. From the comparison between FSFS and BerkleyDB it seemed that FSFS was better in all respects and that the only potential downside was just that it was newer.

Copying the working directories from the desktop to the laptop worked fine. So now I don't have to worry about accidentally copying files and forgetting to check them out. Although the more I use SVN the better I should get at remembering to use it.

What's this "management console for svn" that you created?

Today I was normally going to have the day "off", but since this has all taken so much time I'm going to do some more reading today to make sure I'm utilizing SVN properly. I'm also going to take a look at the SourceConneXion integration with Delphi and see if it works with Delphi 7 Pro. Having an integration with the Delphi IDE that would automatically check in and check out code would make working between my desktop and laptop a breeze. Assuming it doesn't have bugs that make Delphi crash (the Delphi IDE is a bit unstable sometimes)
Reply with quote
bortaS
Magician


Joined: 10 Oct 2000
Posts: 320
Location: Springville, UT

PostPosted: Sat Mar 11, 2006 8:16 pm   
 
"What's this "management console for svn" that you created?"

It's the project in SourceForge that I posted a few threads back. It's one of those meware projects that I thought other people would find useful. It is a .NET project, so if you don't want to bother with the .NET runtime, use the PHP SVNManager instead (by somebody else).

My project home page is here: https://sourceforge.net/projects/svnmanagerlib

SVNmanager home page is here: https://sourceforge.net/projects/svnmanager/

"Copying the working directories from the desktop to the laptop worked fine."

I do that all of the time. I have several copies of my projects that are under subversion in different devices; 2 flash drives, one laptop, and several desktops. So it doesn't matter where I work, I always have access to my projects. This allows me to work whenever I feel like without losing the advantage of source control.
_________________
bortaS
~~ Crusty Klingon Programmer ~~
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Mon Mar 13, 2006 6:56 pm   
 
Well, over the weekend I tried playing with the SourceConneXion integration between the Delphi IDE and SVN (via the PushOK SVN Proxy). As far as I can tell it doesn't work. Or else it's just flaky.

Here is what I tried to do:

1) Updated the test project working directorieson both the desktop and laptop (updated from the Tortoise SVN Update command).

2) On the desktop, I "check out" a file and modify it. Then I "check in" the file.

3) On the laptop, I "check out" the file. It doesn't have the modifications from the desktop as done in step 2. OK, so I try the "Get Outdated Files" option. Nothing. It doesn't bring over the changes either. OK, so I try "Syncronize project" command. It tells me the project is already syncronized.

If I go to TortoiseSNV and Check for Modifications, then it sees that the file was modified (although only when I click the Check Repository button in the SVN dialog). TortoiseSVN Update brings over the modified file just fine.

So it just doesn't look like SourceConneXion is working properly.

Here is the "ideal" setup that I'm looking for:

1) When I "check out" a file in Delphi, I want it to do an SVN Update to make sure I'm getting the most recent file.
2) When I "check in" a file, I want my current changes to be sent to SVN
3) Ideally I want buttons and/or commands in Delphi that allow me to fetch all updates (the SVN Update command) which I can use when I begin working on a project, and then a command to "check in" all of the files that I have modified.

At this point it looks like I just need to do this via the TortoiseSVN menus and do a full Update when I start working and a full Commit when I'm done.

But I was hoping for something better integrated with Delphi. Oh well.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sat Mar 18, 2006 2:52 am   
 
Had to spent another few hours with Subversion today.

First it was easy...I found a Delphi IDE plugin for TortoiseSVN (http://delphiaddinfortortoisesvn.tigris.org/) that puts the various Commit, Add, Checkout, etc commands into a Delphi menu and automatically work on the current project directory. It included Delphi source code, so I was able to modify it a bit better for my needs. This was pretty quick.

Then I actually tried doing real work on my laptop. Things started going wrong when I noticed that a bunch of files in my working directory were marked as read-only. In fact, looking through my various 3rd party component directories I found a lot of other read-only files. My desktop didn't have these marked as read-only...only the laptop.

I unmarked the read-only flag and then started working. An hour or so later I had another file marked as read-only.

After some messing around I discovered that *any* file that I did a Commit on from the laptop was getting marked as Read-only. This didn't happen on the desktop, just the laptop. I turned off authentication in the SVN Server to see if it was some sort of user locking issue. So I made both the desktop and laptop anonymous users. This didn't help.

I read the TortoiseSVN manual and the SVN manual and learned about locking and the property called svn:need-lock but none of these files were marked with that property.

I spent several hours searching Google. Nothing was working. I couldn't understand why the *same files* were getting treated differently on the desktop vs the laptop.

Finally I noticed that the desktop was running TortoiseSVN 1.3.0 while the laptop was running 1.3.2. I don't know how I got a newer version on the laptop, but I must have used a slightly different installation method. I removed 1.3.2 from the laptop and copied over the installed from my desktop and got 1.3.0 installed. This fixed it!

So, I don't know if this is a bug in 1.3.2 or if it was a problem because I was running different versions of TortoiseSVN on the two computers. With a change in only the minor version number I wouldn't expect it to be a problem running different versions. I could waste more time installing 1.3.2 on both systems, but now that 1.3.0 is working I don't really want to spend more time on this.

If anyone else has run into this, let me know. For now I'm going to stay away from 1.3.2 until I know more about the problem. With 1.3.0 it's finally working and I was able to work on both my laptop and desktop successfully tonight for the first time. And with the Delphi addin that I was able to modify, I finally have my "Update All" and "Commit All" functions so that when I'm starting or ending work for the day I have a single menu option that will update the repository.

This free addin (with source included) did a better job for me than the SourceConneXion stuff that costs money (and required the PushOK SCC plugin). The free addin just calls various TortoiseSVN commands, but it actually works. I never could get the SourceConneXion stuff to work and I got no response to my emails to their support address, so they aren't getting any of my money.
Reply with quote
Seb
Wizard


Joined: 14 Aug 2004
Posts: 1269

PostPosted: Sat Apr 22, 2006 5:53 pm   
 
I haven't read all of the comments, but we use FreeVCS at work. It's really simple and works very well for projects where you don't have several people changing the same file at the same time (although that may be possible - I just don't know how it might work). You can use lots of database backends (we use SQL Server 2000), and there are standalone clients or Delphi plugins (my boss uses both - I just use the standalone since I don't use Delphi).

There is also a more (very) active client available for the server at http://jedivcs.sourceforge.net/ - I only just found it and have not used it. Actually it seems to have a server now, and is branching further away from FreeVCS compatibility. Worth a look IMHO though, since it's under more active development. It also seems to detect Delphi when installing the client and integrate itself (will ask you though) - reference http://jedivcs.sourceforge.net/jvcsfaq/index.php?sid=49957&aktion=artikel&rubrik=005&id=83&lang=en

Seb
Reply with quote
Seb
Wizard


Joined: 14 Aug 2004
Posts: 1269

PostPosted: Sat Apr 22, 2006 5:58 pm   
 
Oh, actually, from the FreeVCS home page!

Quote:
FreeVCS goes JediVCS, say FreeVCS goes Open source.

To ensure future development, I decided to switch FreeVCS from Freeware to Open Source - probably the most requested enhancement of all and the all-time number one FAQ during the last years ;).


Seems the developer of FreeVCS moved it.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Apr 26, 2006 12:15 am   
 
I wasted another 4 hours with CVS (SubVersion) again today.

I *thought* I had the auto-props set up to recognize *.res as a binary file. But apparently not. When I updated the Developer Express components to their latest version today (which is a big enough pain by itself), all of the *.res files ended up getting corrupted somehow, causing Delphi to crash and hang and do all sorts of wierd stuff. In fact, it took a while just to figure out why even the command line Delphi compiler was just crashing with no error.

Finally I found that it was a corrupted *.res resource file, and sure enough, when I checked the SVN properties, it was NOT marked as a binary file. I never did an Update so I don't know how it got changed. Probably doing something with the line control stuff.

Took forever to fix this. I ended up having to delete all of the *.RES files, then update the repository, then set the auto-props correctly and re-add all of the RES files. We are talking about 900 files here, so it wasn't trivial. Especially since I was trying to keep my changes to their source code separate so that I could create a patch file to make the upgrade go faster next time.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » Zugg's Blog All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
© 2009 Zugg Software. Hosted on Wolfpaw.net