Can I use the Delphi XE2 Subversion integration with Subversion 1.7 - delphi

I have just migrated revision control systems to Subversion. We have chosen to use the latest version of Subversion, 1.7. When I switch to the history view in the Delphi editor an error occurs:
The path 'path/to/my/project' appears to be part of a Subversion 1.7 or greater working copy rooted at 'path/to/my/project'. Please upgrade your Subversion client to use this working copy.
Clearly the integration shipped with XE2 does not support Subversion 1.7. Does anyone know a workaround to this problem?

It should be possible to install the latest version (use a Subversion client to get the latest sources from the SourceForge SVN repository).
Edit (to clarify): "RAD Studio Version Insight" is the opensource project which provides the IDE Subversion integration. Its source code is maintained in a Subversion repository on SourceForge. So you can use any Subversion client to get the latest sources from that repository.
Currently the active maintainer of the project is Uwe Schuster.
I've successfully updated my (trial) RAD Studio XE2 to use the current trunk (rev. 152). Here are the steps:
Check out the latest sources
Open the project group in the IDE, change library suffix to 160 in Project Options for each package
Delete or rename svn.dcp, svnui.dcp in $(BDS)\lib\Win32\Release directory
Rebuild all three packages (svn, svnui, svnide), close the IDE
Replace svn160.bpl, svnui160.bpl, svnide160.bpl in $(BDS)\bin directory
Replace Subversion client DLLs in $(BDS)\bin\subversion directory (I used CollabNet Subversion Client DLLs 1.7.1.7211)
Start the IDE

For anyone else who encounters the problem, and thanks to TOndrej and Uwe, here is exactly what I did to get integration of svn 1.7 in XE2. I expect the same would work in XE.
Install Version Insight Plus Beta 7.1.
Install the win32svn client.
Point the Delphi IDE at the appropriate svn client with a registry setting in HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Subversion. Add a REG_SZ value named SvnDllDir, whose value is the bin directory of the win32svn client, C:\Program Files (x86)\Subversion\bin in my case. For XE this would be ...\BDS\8.0\....

another choice: you can create your repository with option --compatible-version ,it can make you create repository for old version.try "svnadmin help create" to get more information.you old version subversion can work well in rad studio

Related

How to configure older version of package with packages available on TFS server

I have a VS 2008 file that runs on my computer perfectly fine and does everything it needs to do. When I update the TFS version of it its copies exactly, just as you'd expect. However when I build my solution on TFS it can't find a package in my packages folder in my project folder.
This all makes sense, the .gitignore has it set so that packages in the project are removed (unless necessary), and my company uses nuget to deal with all common 3rd party packages used. That being said, how do I get a reference to the package (with appropriate version) from the TFS server to my code on TFS?
P.S. This is my first time dealing with this tech so apologies if the lingo is being misused. Thanks!
How to configure older version of package with packages available on TFS server
If you are using the TFS version is 2015 or above, there is NuGet Installer or NuGet Restore task, which you could use to restore the nuget package from the package source to the work directory when you build your project:
Check the document Azure Artifacts and NuGet restore Vs NuGet installer.
If you are using the TFS version is 2013 and below, you can
check the document Integrate NuGet Package Restore TFS Build 2013 or Older to restore nuget packages.
Hope this helps.

Visual Studio 2015 Nuget Restore Problems for Version 1.0.3 of Newtonsoft.Json.dll

I have a solution which was working with Visual Studio 2015 Community in a machine. That machine was crashed and I can not access the source codes over there any more.
However the source codes were checked into TFS. After I got new machine, I got all latest source codes from TFS.
The issue is that this solution in new machine has a lot of compile errors.
Visual Studio 2015 could restore some of the references. However I have a complain like this -
Clicking button Restore will have this error -
I don't think I have used a version of 1.0.3 of Newtonsoft.Json.dll directly. I deleted the package folder and all project bin and obj folders. The recompile still can not fix it.
What can be done to fix this problem?
Have you also delete the NuGet.Config file in the packages folder? If you did it, Visual Studio will try to do the MSBuild package restore instead of Automatic Package Restore.
By default, the NuGet.Config file instructs NuGet to bypass adding
package binaries to source control. Automatic Package Restore will
honor this as long as you leave this file in place. Note that
NuGet.Config only has an effect when using Visual Studio to integrate
with Team Foundation Server (TFS).
You should also manually remove references in all your projects to the Nuget.targets file. The following article outlines in more details: https://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore
If you still can't fix it, try to use the Command-Line Package Restore

Error -> Build failed -> Please upgrade your Subversion client to use this working copy

I am using Xcode 4.2.1 and I have this problem running an existing application on the iOS simulator:
svn: The path '.' appears to be part of a Subversion 1.7 or greater
working copy. Please upgrade your Subversion client to use this
working copy.
/Users/me/Library/Developer/Xcode/DerivedData/myproject-dxfzldckuqdmlrghowwkdrbgoigy/Build /Intermediates/myproject.build/Debug-iphonesimulator/MyProject.build/Script-9567AEA113C59633000AA291.sh: No Subversion revision found at /Users/me/Library/Developer/Xcode/DerivedData/myproject-dxfzldckuqdmlrghowwkdrbgoigy/Build/Intermediates/myproject.build/Debug-iphonesimulator/MyProject.build/Script-9567AEA113C59633000AA291.sh line 32.
Building revision
Command /bin/sh failed with exit code 1
I have a Subversion server 1.7.1 installed and also on the client side I upgraded to 1.7.1.
I did a svn upgrade and then I get this error in Xcode.
If I repeat the svn upgrade on the terminal I get the message Can't upgrade '...' as it is not a pre-1.7 working copy directory.
So what is wrong? How an I solve the problem?
Xcode doesn't yet support SVN 1.7. Only 1.6 is supported. In order to fix your problem, you'll need to switch to using an SVN 1.6 compatible working copy.
Since SVN 1.7 client is unable to work with 1.6 working copies at all, you'll need to remove SVN 1.7.x from your client and revert to 1.6. (Or perhaps just adjust your PATH so the SVN 1.6 tools are first.) Once 1.6 is back, delete or move aside your existing working copy and check out a fresh copy with SVN 1.6. Now Xcode should be able to work with your working copy.
Note that you can freely use SVN 1.6 client with an SVN 1.7 server. Some of the newer features won't be available, but it will work. There's no need to downgrade the server or your server-side repositories.
Keep an eye on the Xcode release notes in updates as I'm sure Apple will note when Xcode is capable of using SVN 1.7. When a 1.7 compatible release of Xcode becomes available, it should then be safe to upgrade your client to 1.7 and migrate your working copy again.
There is a post that appears to imply that you can fool XCode into using svn 1.7 client by changing your PATH and setting up a couple of soft links in strategic places. Unfortunately, the post is in Chinese. Fortunately, Google translate and the presence of UNIX commands make it possible to decrypt what the post is saying. I will try it in the next few days, and update the answer if anything useful comes out of this exercise.
EDIT: I tried the steps from the post, and it worked. Here is what I did:
Downloaded and installed svn client 1.7.2 into /opt/subversion
Added /opt/subversion/bin to my PATH in .bash_profile
Created a backup directory /Developer/usr/bin/orig.svn
Moved /Developer/usr/bin/svn* to /Developer/usr/bin/orig.svn
Ran ln -s /opt/subversion/bin/svn* /Developer/usr/bin/
After that I re-started XCode, went to Organizer, and was able to attach a working copy of a checkout created with svn 1.7.2 client. Organizer showed a green dot next to the repository, displayed a list of revisions, etc., so at this point I believe that the trick has worked.
You can download and install a binary package from http://www.wandisco.com/subversion/download#osx
The package will install to /opt/subversion while the xcode version of SVN is installed in /usr/bin. If you prepend /opt/subversion/bin to your path variable, it will be chosen instead of the xcode version.
If you don't want to mess with your path, you can just alias one version or the other. man alias for details.

Update DUnit on Delphi 2010

Does anyone know how to update dUnit which comes with Delphi 2010 to the latest svn source code?
Steps
Goto http://sourceforge.net/projects/dunit/
Download the zip file (currently version 9.3.0)
Unpack to a folder of your choice
Use Components|Install packages to remove the current DUnit package bpl.
Compile and install (optional) the new version. Compilation is needed only if you want to install the design time wizards or if you do not build your projects using the source. Installation is only needed if you want to use the design time wizards. Read the various doc and readme files for further instructions.
Update your environment's library path and the search paths of projects using DUnit:
take out any references to $(BDS)\source\DUnit*
put in a reference to the src subfolder of where you installed the new version
Update
The latest version on sourceforge is 9.3.0, but that is not the latest DUnit version. To get the latest DUnit version, you can go to its SVN repository: https://dunit.svn.sourceforge.net/svnroot/dunit/trunk/
The are at 9.4.0 (revision 41 according to the top of the page, version found in readme-9.4.txt and release.ini).
The sources found there do not contain any packages for Delphi versions past D7, but as mentioned in my response to Serg, these packages are for the DUnitWizards which were contributed from outside the main DUnit project. To use DUnit, you don't need these wizards. In fact, DUnit itself does not have any packages!
I think you can still use the wizards (or should I say project/unit templates) that come standard with Delphi and just make sure that your library and search paths point to the new version... In fact, I know you can, because that is what I did a couple of days ago: use the File|New|Other|Unit test| project and unit templates that come standard with the IDE, but compile against the newest sources downloaded from SVN.
You can either unregister current DUnit package by removing its key from Registry:
HKCU\Software\CodeGear\BDS\7.0\Known IDE Packages\$(BDS)\Bin\unittestide140.bpl
Then download and install the new version from any folder you want, into the IDE as you install any other IDE package.
Or you build the new version, copy the generated BPL file to $(BDS)\bin\ folder, and its .DCU files to $(BDS)\Lib\ folder, and replace $(BDS)\Source\DUnit folder with the source folder you downloaded from SVN.

Installing multiple library versions in Delphi / C++Builder

How I can install multiple versions of a library in Delphi or C++Builder? For example, I might want to be able to develop the next version of our app using the current versions of JCL and JVCL while still being able to compile the release version of our app using whatever version of JCL and JVCL were tested for that release.
Using more than one version of a library is easy with libraries like Boost, since those are just header files and library / DLL files that I can put wherever I want, and so I can simply point my project files at the appropriate library directories. However, since libraries like JCL and JVCL try to install themselves into the IDE, I'm not sure how to configure different projects to use different versions without it turning into an unmanageable hack.
(I'm still not entirely familiar with how Delphi manages components and projects - most of my experience is in C++ - so this may be part of my problem.)
We had the same problem, supporting older versions compiled with different versions of the components. Our solution was/is to use the IDE's " -r " command line option. With this switch it is possible to use different library paths and packages (at the same time). The only problem that we encountered with this approach was that some of us regularly tried to open an older project version in the wrong IDE instance.
[Old version 1.0] bds.exe -rVersion1.0
[trunk version ] bds.exe
How to setup those:
Start your IDE as you are used to it.
Install everything you need for "Version 1.0"
Close the IDE
Install all (old) packages (JCL/JVCL/...)
Start regedit.exe
Export the registry key HKCU\Software\CodeGear\BDS\5.0 to a *.reg file
Start nodepad.exe and do a search&replace in the *.reg file for "CodeGear\BDS\5.0" and replace it with "CodeGear\Version1.0\5.0"
Import the *.reg file (by double clicking it in the Windows Explorer)
Create a copy of your RAD Studio 2007 startmenu link and change the command line to include the "-rVersion1.0" key.
Now you have two IDE configurations that are equal. You can now change the IDE that doesn't use the " -r " command option to your trunk version's packages.
When you install all the packages, you must not use the default BPL and DCP directories unless the different package versions use different file names (like the JCL and JVCL do).
CodeGear\BDS\5.0 = Delphi 2007
CodeGear\BDS\6.0 = Delphi 2009
Borland\BDS\4.0 = Delphi 2006
Borland\Delphi\7.0 = Delphi 7

Resources