Bug 1536 - Problems publishing a project to SVN version control
Summary: Problems publishing a project to SVN version control
Status: RESOLVED FIXED
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: Version Control ()
Version: 2.8
Hardware: Macintosh Mac OS
: --- critical
Target Milestone: ---
Assignee: Lluis Sanchez
URL:
Depends on:
Blocks:
 
Reported: 2011-10-17 14:40 UTC by Neal
Modified: 2011-10-26 15:20 UTC (History)
1 user (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
canonical error (79.88 KB, image/png)
2011-10-24 17:54 UTC, Neal
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description Neal 2011-10-17 14:40:34 UTC
Hello Folks,

I have not been able to get version control to work since 2.8 released.  Initially I thought it was because I was using SVN 1.7 on the server, today I uninstalled SVN and regressed the prior version of VisualSVN server (2.1.x) which uses SVN 1.6.  I'm able to work with SVN fine in Cornerstone app on my Mac (Lion).  

Any suggestions to make this work?

Thanks

~~~~~~~~~~~~~~~~~~~~

System.NullReferenceException: Object reference not set to an instance of an object
  at MonoDevelop.Core.FilePath.IsChildPathOf (FilePath basePath) [0x00012] in /private/tmp/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FilePath.cs:127 
  at MonoDevelop.VersionControl.Subversion.SubversionVersionControl.GetFileStatus (MonoDevelop.VersionControl.Repository repo, FilePath sourcefile, Boolean getRemoteStatus) [0x0002a] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionVersionControl.cs:115 
  at MonoDevelop.VersionControl.Subversion.SubversionVersionControl.GetVersionInfo (MonoDevelop.VersionControl.Repository repo, FilePath localPath, Boolean getRemoteStatus) [0x00055] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionVersionControl.cs:103 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository+<OnGetVersionInfo>c__Iterator0.MoveNext () [0x00059] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:97 
  at System.Linq.Enumerable.Single[VersionInfo] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.Single[VersionInfo] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at MonoDevelop.VersionControl.Repository.GetVersionInfo (FilePath localPath, Boolean getRemoteStatus) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Repository.cs:154 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository.Add (MonoDevelop.Core.FilePath[] paths, Boolean recurse, IProgressMonitor monitor) [0x00042] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:233 
  at MonoDevelop.VersionControl.Repository.Add (FilePath localPath, Boolean recurse, IProgressMonitor monitor) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Repository.cs:287 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository.Publish (System.String serverPath, FilePath localPath, MonoDevelop.Core.FilePath[] files, System.String message, IProgressMonitor monitor) [0x000ad] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:156 
  at MonoDevelop.VersionControl.PublishWorker.Run () [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs:93 
  at MonoDevelop.VersionControl.Task.BackgroundWorker (System.Object state) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs:49
Comment 1 Neal 2011-10-17 14:41:07 UTC
I'm using MD 2.8.1, MT 5.0, Mono 2.10.6
Comment 2 Neal 2011-10-24 12:45:00 UTC
Any info/updates on this report?
Comment 3 Neal 2011-10-24 17:54:11 UTC
Created attachment 761 [details]
canonical error
Comment 4 Neal 2011-10-24 17:54:18 UTC
MonoDevelop.VersionControl.Subversion.SubversionException: Path 'https://svn.logbookpro.com:443/svn/ncsoftware/trunk/LogbookPro' is not canonicalized; there is a problem with the client.
  at MonoDevelop.VersionControl.Subversion.Unix.SvnClient.CheckError (IntPtr error) [0x0007e] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs:969 
  at MonoDevelop.VersionControl.Subversion.Unix.SvnClient.Checkout (System.String url, FilePath path, MonoDevelop.VersionControl.Revision revision, Boolean recurse, IProgressMonitor monitor) [0x000aa] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs:644 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository.Publish (System.String serverPath, FilePath localPath, MonoDevelop.Core.FilePath[] files, System.String message, IProgressMonitor monitor) [0x00051] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:149 
  at MonoDevelop.VersionControl.PublishWorker.Run () [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs:93 
  at MonoDevelop.VersionControl.Task.BackgroundWorker (System.Object state) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs:49
Comment 5 Lluis Sanchez 2011-10-25 04:30:34 UTC
The problem seems to be caused by the explicit specification of the 443 port in the url. This is fixed in master. Can you try publishing the project without the 443 port number and see if that works?
Comment 6 Neal 2011-10-25 11:40:56 UTC
Removing the 443 does help, I can publish small "new" test solutions.  However, my production solution with three projects in it fails with the following exception:

System.NullReferenceException: Object reference not set to an instance of an object
  at MonoDevelop.Core.FilePath.IsChildPathOf (FilePath basePath) [0x00012] in /private/tmp/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FilePath.cs:127 
  at MonoDevelop.VersionControl.Subversion.SubversionVersionControl.GetFileStatus (MonoDevelop.VersionControl.Repository repo, FilePath sourcefile, Boolean getRemoteStatus) [0x0002a] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionVersionControl.cs:115 
  at MonoDevelop.VersionControl.Subversion.SubversionVersionControl.GetVersionInfo (MonoDevelop.VersionControl.Repository repo, FilePath localPath, Boolean getRemoteStatus) [0x00055] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionVersionControl.cs:103 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository+<OnGetVersionInfo>c__Iterator0.MoveNext () [0x00059] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:97 
  at System.Linq.Enumerable.Single[VersionInfo] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.Single[VersionInfo] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
  at MonoDevelop.VersionControl.Repository.GetVersionInfo (FilePath localPath, Boolean getRemoteStatus) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Repository.cs:154 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository.Add (MonoDevelop.Core.FilePath[] paths, Boolean recurse, IProgressMonitor monitor) [0x00042] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:233 
  at MonoDevelop.VersionControl.Repository.Add (FilePath localPath, Boolean recurse, IProgressMonitor monitor) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Repository.cs:287 
  at MonoDevelop.VersionControl.Subversion.SubversionRepository.Publish (System.String serverPath, FilePath localPath, MonoDevelop.Core.FilePath[] files, System.String message, IProgressMonitor monitor) [0x000ad] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs:156 
  at MonoDevelop.VersionControl.PublishWorker.Run () [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs:93 
  at MonoDevelop.VersionControl.Task.BackgroundWorker (System.Object state) [0x00000] in /private/tmp/source/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs:49
Comment 7 Neal 2011-10-26 13:45:49 UTC
Any luck on this?  SVN is critical, we never want to be without it and we can't use it presently.  I want to make sure this is fixed in the next release please.

Thanks!
Comment 8 Lluis Sanchez 2011-10-26 14:31:54 UTC
How are you publishing the project? do you enter the url directly in the publish dialog or are you selecting a pre-registered repository? are you specifying user information? does MD ask for it?
Comment 9 Neal 2011-10-26 14:34:38 UTC
I have a registered repository in MD so I select that and it adds the solution name and comment to perform an initial check-in.  I am not prompted for anything.  Like I said, with a new solution/MT Universal project it works.  But my existing solution with three projects fails.  I have set the Mac OS to show hidden files and deleted the hidden .svn folders to remove all traces of version control to retry and it fails every time.
Comment 10 Lluis Sanchez 2011-10-26 14:55:27 UTC
The execution path shown in the stack trace implies that there is a .svn directory somewhere in the solution. I tried publishing a project with a .svn folder in one of the subdirectories and I could reproduce the crash with exactly the same stack trace. Are you sure you deleted all .svn directories in all subdirectories? There must be one left.
Comment 11 Neal 2011-10-26 15:13:05 UTC
That was it!  I didn't realize the sub-folders I had in each project would also have a .svn hidden folder.  I found and removed all of them and the solution published successfully!

Thank you very much!

Obviously it would be nice if this issue could be overcome and succeed, i.e. overwrite a previous .svn folder instead of erroring out and/or providing a help message to help resolve this issue.

And another suggestion is a utility in MD to clear version control from a solution or project so it could do what I had to do automatically.

Thanks again!  Close or do as you wish with this case.
Comment 12 Lluis Sanchez 2011-10-26 15:20:33 UTC
Glad to hear that was the problem! MonoDevelop will now deal better with this problem.