<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Subversion PlugIn - Handle invalid repository URL in python script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/2d863f4bd7/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/2d863f4bd7/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/2d863f4bd7/</id><updated>2020-02-27T14:52:02.911000Z</updated><subtitle>Recent posts to Subversion PlugIn - Handle invalid repository URL in python script</subtitle><entry><title>Subversion PlugIn - Handle invalid repository URL in python script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/2d863f4bd7/?limit=25#c9d3" rel="alternate"/><published>2020-02-27T14:52:02.911000Z</published><updated>2020-02-27T14:52:02.911000Z</updated><author><name>DanSi</name><uri>https://forge.codesys.com/u/dansi/</uri></author><id>https://forge.codesys.com06efd2665da1f0fbf7cfc8b9669aafc59317ec06</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;we use the commandline option from TortoiseSVN  with the subprocess module to check the path:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;def&lt;/span&gt; &lt;span class="nv"&gt;svn_check_path&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;URL&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;:
   &lt;span class="nv"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;CD C:\Program Files\TortoiseSVN\bin&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; # &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;shell&lt;/span&gt; &lt;span class="nv"&gt;command&lt;/span&gt;
   &lt;span class="nv"&gt;process&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;subprocess&lt;/span&gt;.&lt;span class="nv"&gt;Popen&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;command&lt;/span&gt;, &lt;span class="nv"&gt;stdout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;subprocess&lt;/span&gt;.&lt;span class="nv"&gt;PIPE&lt;/span&gt;, &lt;span class="nv"&gt;stderr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;None&lt;/span&gt;, &lt;span class="nv"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;True&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
   &lt;span class="nv"&gt;process&lt;/span&gt;.&lt;span class="nv"&gt;communicate&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
   
   &lt;span class="nv"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;svn ls &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;URL&lt;/span&gt; 
   &lt;span class="nv"&gt;process&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;subprocess&lt;/span&gt;.&lt;span class="nv"&gt;Popen&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;command&lt;/span&gt;, &lt;span class="nv"&gt;stdout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;subprocess&lt;/span&gt;.&lt;span class="nv"&gt;PIPE&lt;/span&gt;, &lt;span class="nv"&gt;stderr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;subprocess&lt;/span&gt;.&lt;span class="nv"&gt;PIPE&lt;/span&gt;, &lt;span class="nv"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;True&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
   #&lt;span class="nv"&gt;Launch&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;shell&lt;/span&gt; &lt;span class="nv"&gt;command&lt;/span&gt;:
   &lt;span class="nv"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;process&lt;/span&gt;.&lt;span class="nv"&gt;communicate&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
   &lt;span class="nv"&gt;log&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;output&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;].&lt;span class="nv"&gt;decode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cp1252&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   #&lt;span class="nv"&gt;Split&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;logs&lt;/span&gt; 
   &lt;span class="nv"&gt;infos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;log&lt;/span&gt;.&lt;span class="nv"&gt;splitlines&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;path_missing&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;False&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;logs&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;infos&lt;/span&gt;:
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;warning&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;logs&lt;/span&gt; &lt;span class="nv"&gt;or&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;E200009&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;logs&lt;/span&gt;:
         &lt;span class="nv"&gt;path_missing&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;True&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;path_missing&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Subversion PlugIn - Handle invalid repository URL in python script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/2d863f4bd7/?limit=25#e922" rel="alternate"/><published>2020-02-27T14:52:02.330000Z</published><updated>2020-02-27T14:52:02.330000Z</updated><author><name>DBaur</name><uri>https://forge.codesys.com/u/dbaur/</uri></author><id>https://forge.codesys.come846985db9887379ddcfba8d44ce3a668f3795d7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;br/&gt;
an invalid repository URL given to&lt;br/&gt;
svn.checkout &lt;br/&gt;
function leads to an exception.&lt;br/&gt;
How can this be handeled?&lt;br/&gt;
Is there a possibility to check the validity of the URL before call the interface function?&lt;/p&gt;
&lt;p&gt;Thanks in advance. &lt;/p&gt;
&lt;p&gt;Kind regards&lt;br/&gt;
D. Baur&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>