How to revert to an older revision in Cornerstone

I’ve got to track down a bad crash bug. Since I don’t see when I “added” this nice bug I wanted to revert to an older revision in Cornerstone. But when I did this I only got some strange files:

max.rbp.merge-right.r1939
max.rbp.merge-left.r2069

etc on which Xojo promptly choked.

How do I revert properly? I simply checked which revision I needed and then did a Working Copy/Revert and entered the revision number. I would even do a simple export for testing. But this is useless because I still use simple external items and the path goes to the original and not the files next to the project.

You are using the .rbp project file format (binary) with version control? I don’t’ think that’s going to work very well…

One thing you can do is manually delete the files (max.rbp.merge.*) then do an Update again - this will get you back to the prior revision. At that point, reverting may work better.

It sounds as if SVN is thinking that .rbp files can be treated as text files and merged? Since it’s a binary file, that’s not possible. I think you can set cornerstone prefs to not have that behavior.

Thanks for your reply. I’m using one project file with external items. I’ve thought about moving to the text format. But this still after how many years doesn’t support files to be used by multiple projects.

I’ll do a Google on what these merge files are.

I have the same problem with external items.
However you can still do better than saving as binary: save the main project as text and external items as XML.
Not the optimal solution, but much better than using binary projects.

And here are a couple of related Feedback cases:
<https://xojo.com/issue/31609>
<https://xojo.com/issue/3624>

Thanks, Massimo. I’ll try this out as soon as I’ve solved the problem I have with my project that I need the older revisions for.

@Beatrix Willius
You could use SVN external items. They’re a little more difficult to set up, but they do work. Cornerstone makes them really easy to use though.

The advantage is that the external items gain their own revisions, so you can upgrade each project to the latest version at your leisure.

@Greg: I’ll check out what this is. Hopefully, this doesn’t need to be done for each of my almost 500 project items manually.

But I’ve got a bad crash in my app to solve so I need a solution that works for the setup I have now. So far I think that exporting an older revision is my next try. Then I’ll move everything to another computer to force the main project to use the local external items.

[quote=58950:@Greg O’Lone]@Beatrix Willius
You could use SVN external items. They’re a little more difficult to set up, but they do work. Cornerstone makes them really easy to use though.

The advantage is that the external items gain their own revisions, so you can upgrade each project to the latest version at your leisure.[/quote]

That´s an interesting topic for everyone needs to use a number of common classes shared among different projects. Besides knowing how the external item works in SVN, it would be interesting to know how this can be implemented for Xojo external items.
In particular if the number of external items is high and what happen if there is the need to frequently add external items or remove existing ones.
Is there some tutorial or webinar on this topic?

@Beatrix Willius - What I typically do is make a special repository for items that are external, but it certainly could be inside another project. I find it much easier if all of the external items live in a common rood directory, which I usually call Shared_Items. So then all you need to do is set up the External link:

  1. In Cornerstone, click on the Parent folder of where you want the shared_items folder to be.
  2. Open the Properties tab of the Inspector.
  3. Click the Open Externals button.
  4. Click the + button on the right side of the bottom most item.
  5. In the Check Out To field, put the name of the folder (This is where I’d put Shared_Items)
  6. In Check Out From, put the repository path. You can use the […] button on the right to bring up the repository viewer and choose the folder you are looking for.
  7. In the Revision field, you can select a specific revision. If you want a close experience to the way Xojo does it, leave these at Latest in Repository. If you ever need a specific revision of your externals, you can specify that here.
  8. Close the Externals dialog. This should “check out” a version into your working copy.

Then you move them from the location where the projects expect them to be and open your project. When it asks for an item that was an external, point the IDE at the version in the shared_items folder.

NOTE: You need to use the same format that the original items were in for the externals. XML, binary, etc…

Thanks!