<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>How To Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/how-to/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Mon, 23 Aug 2021 06:50:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>How to write html code in PHP</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-write-html-code-in-php/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-write-html-code-in-php/#respond</comments>
		
		<dc:creator><![CDATA[Ashwani Kumar]]></dc:creator>
		<pubDate>Mon, 23 Aug 2021 06:50:49 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to write html code in PHP]]></category>
		<category><![CDATA[html code in php]]></category>
		<category><![CDATA[html in php]]></category>
		<category><![CDATA[html tags in php]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[write html code in PHP]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=8164</guid>

					<description><![CDATA[<p>When developing a web application with PHP, we frequently need to print or echo a few HTML results. This work [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-write-html-code-in-php/">How to write html code in PHP</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When developing a web application with PHP, we frequently need to print or echo a few HTML results. This work can be accomplished in a variety of ways. Here are a few examples of methods:</p>



<p class="wp-block-paragraph"><strong>Using &#8220;echo or print&#8221;:</strong>&#8211; HTML markup, javascript, text, and variables may all be shown with PHP echo or print.</p>



<p class="wp-block-paragraph"><strong>Example 1:</strong>&nbsp;This example uses PHP echo to display the result.</p>



<script src="https://gist.github.com/AdarshAshwani/d526bafbc6f7b37bc1d797d29ed1816a.js"></script>



<p class="wp-block-paragraph"><strong>Output:-</strong></p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="659" height="122" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-149.png" alt="" class="wp-image-8168" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-149.png 659w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-149-300x56.png 300w" sizes="(max-width: 659px) 100vw, 659px" /></figure>



<p class="wp-block-paragraph"><strong>Example 2:</strong>&nbsp;This example uses PHP print to display the result.</p>



<script src="https://gist.github.com/AdarshAshwani/16e474d22359b602e4f2abab4497cf04.js"></script>



<p class="wp-block-paragraph"><strong>Output :</strong> </p>



<figure class="wp-block-image size-full"><img decoding="async" width="659" height="122" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-151.png" alt="" class="wp-image-8171" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-151.png 659w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-151-300x56.png 300w" sizes="(max-width: 659px) 100vw, 659px" /></figure>



<p class="wp-block-paragraph"><strong>Using echo shorthand or separating HTML:</strong> Any expression, variable value, or HTML markup can be shown with the PHP echo shortcut.</p>



<p class="wp-block-paragraph"><strong>Example 1:</strong>&nbsp;This example uses PHP echo shorthand to display the result.</p>



<script src="https://gist.github.com/AdarshAshwani/6b182a17949cb277d1b8fb13c0c9a68f.js"></script>



<p class="wp-block-paragraph"><strong>Output:</strong> </p>



<figure class="wp-block-image size-full"><img decoding="async" width="645" height="128" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-152.png" alt="" class="wp-image-8173" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-152.png 645w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-152-300x60.png 300w" sizes="(max-width: 645px) 100vw, 645px" /></figure>



<p class="wp-block-paragraph"><strong>Example 2:</strong>&nbsp;Separating HTML from PHP</p>



<script src="https://gist.github.com/AdarshAshwani/0ff67a60f2b2d2406b36d3897fee7d07.js"></script>



<p class="wp-block-paragraph"><strong>Output:-</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="648" height="347" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-153.png" alt="" class="wp-image-8180" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-153.png 648w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2021/08/image-153-300x161.png 300w" sizes="auto, (max-width: 648px) 100vw, 648px" /></figure>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-write-html-code-in-php/">How to write html code in PHP</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-write-html-code-in-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Resolve Windows Installer Problem</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-resolve-windows-installer-problem/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-resolve-windows-installer-problem/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 12:05:49 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[issues.]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Resolve]]></category>
		<category><![CDATA[Troubleshoot Windows Installer Problems]]></category>
		<category><![CDATA[Windows Installer Problem]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4549</guid>

					<description><![CDATA[<p>Installation of a program means inserting that particular program in your computer so that it can be executed properly. Some [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-resolve-windows-installer-problem/">How to Resolve Windows Installer Problem</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Installation of a program means inserting that particular program in your computer so that it can be executed properly. Some of the software programs can be simply copied to the computer and executed without doing anything further; they don’t require any kind of installation process. Many programs come with an executable suite, which requires to be installed. Installation is the process where you will have to unpack some files, copy them to desired locations, tailor the software to suite your hardware and give the desired information to the operating system.</p>
<p>Installation often means that once a program is installed, the user can run the program over and over again, without reinstalling it again before using each time. Until one does not uninstall the program or the program does not allow further execution, you will have to install it again. However, sometimes one can encounter problems while installing a program. Here are some simple steps that will help you in resolving windows installer problems:</p>
<p><strong>teps:</strong></p>
<ul>
<li>First thing to do for resolving windows installer problem is identifying it. When you are trying to install or uninstall something, you might get a warning message like:</li>
</ul>
<p>“The windows installer cannot be accessed”</p>
<p>“Windows installer service cannot be started”</p>
<p>“Could not start the windows installer service on Local computer. Error 5:</p>
<p>access is denied.”</p>
<ul>
<li>These error messages will often appear on the screen when the installation of the MSI package has failed or when the windows installer service is disabled.</li>
<li><strong>Method 1: </strong>first unregister windows installer, and then you will have to register it again. For resolving windows installer problems of such a nature, just do the following things. Go on the ’start’ menu and click on the ‘run’ option. In the dialog box start typing ‘msiexec/unreg’, and then press the enter key.</li>
<li>Go on the ’start’ menu again and click on the ‘run’ option. In the dialog box start typing, ‘msiexec/regserver’ and then press the ‘enter’ key.</li>
<li><strong>Method 2: </strong>you can upgrade the windows installer to a higher version or a newer version. For this, open the internet explorer page, and go to the Microsoft website. Go to the link, <a href="http://msdn.microsoft.com/downloads" rel="nofollow">http://msdn.microsoft.com/downloads</a>. On the left side you will get an option of ’setup and system administration’ and now click on the ’setup’ option.</li>
<li>Select the ‘windows installer’, and then choose the appropriate link for your operating system. Now click on the ‘download’ option and install the new version or install the higher version of windows installer.</li>
<li><strong>Method 3: </strong>for resolving windows installer problem, you might have to uninstall the failed product with the help of an installer cleanup. The description for the windows installer cleanup utility is, <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;290301" rel="nofollow">http://support.microsoft.com/default.aspx?scid=kb;en-us;290301</a></li>
<li><strong>Method 4:</strong> if the windows service is disabled on your computer, then go to the ’start’ menu, select ‘run’ option and type ’services.msc’ and click enter. Now, double click on the option of windows installer.</li>
<li><strong>Method 5:</strong> check the DCOM and the permission by the system through <a href="http://support.microsoft.com/?id=319624" rel="nofollow">http://support.microsoft.com/?id=319624</a></li>
<li><strong>Method 6:</strong> another thing you can do for resolving windows installer problem is</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-resolve-windows-installer-problem/">How to Resolve Windows Installer Problem</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-resolve-windows-installer-problem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Examin History in Subversion (SVN)?</title>
		<link>https://www.scmgalaxy.com/tutorials/examining-history-in-subversion/</link>
					<comments>https://www.scmgalaxy.com/tutorials/examining-history-in-subversion/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Fri, 26 Nov 2010 12:34:45 +0000</pubDate>
				<category><![CDATA[SVN(Subversion)]]></category>
		<category><![CDATA[Examin]]></category>
		<category><![CDATA[Examin SVN History]]></category>
		<category><![CDATA[Examining History in Subversion]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Historical data]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversion History]]></category>
		<category><![CDATA[SVN commit history]]></category>
		<category><![CDATA[SVN History Examining Command]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/11/26/examining-history-in-subversion/</guid>

					<description><![CDATA[<p>Examining History in Subversion Your Subversion repository is like a time machine. It keeps a record of every change ever [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/examining-history-in-subversion/">How to Examin History in Subversion (SVN)?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4339" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/11/subversion-history-examinin.png" alt="subversion-history-examining" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/11/subversion-history-examinin.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/11/subversion-history-examinin-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h2>
<h2>Examining History in Subversion</h2>
<p>Your Subversion repository is like a time machine. It keeps a record of every change ever committed and allows you to explore this history by examining previous versions of files and directories as well as the metadata that accompanies them.</p>
<p><strong>Several commands can provide you with historical data from the repository:</strong></p>
<div>
<dl>
<dt><strong>svn log</strong></dt>
<dd>Shows you broad information: log messages with date and author information attached to revisions and which paths changed in each revision</dd>
<dt><strong>svn diff</strong></dt>
<dd>Shows line-level details of a particular change</dd>
<dt><strong>svn cat</strong></dt>
<dd>Retrieves a file as it existed in a particular revision number and displays it on your screen</dd>
<dt><strong>svn list</strong></dt>
<dd>Displays the files in a directory for any given revision</dd>
</dl>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/examining-history-in-subversion/">How to Examin History in Subversion (SVN)?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/examining-history-in-subversion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Setup Configure Hudson Master Slave? &#8211; Complete Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/hudson-master-slave-setup/</link>
					<comments>https://www.scmgalaxy.com/tutorials/hudson-master-slave-setup/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 24 Jul 2010 05:09:11 +0000</pubDate>
				<category><![CDATA[Build Tools]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Hudson master slave configuration]]></category>
		<category><![CDATA[Hudson Master Slave setup]]></category>
		<category><![CDATA[Hudson Master Slave setup Guide]]></category>
		<category><![CDATA[Instructions]]></category>
		<category><![CDATA[Master slave setup]]></category>
		<category><![CDATA[Master/Slave Hudson]]></category>
		<category><![CDATA[Method]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Setup]]></category>
		<category><![CDATA[Slave agents setup method]]></category>
		<category><![CDATA[Slave setup]]></category>
		<category><![CDATA[Steps]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Ways]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/07/24/hudson-master-slave-setup/</guid>

					<description><![CDATA[<p>The tasks can be scheduled to run on the same machine (Master), or on a different machine (Slave). A master [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/hudson-master-slave-setup/">How to Setup Configure Hudson Master Slave? &#8211; Complete Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="date-posts">
<div class="post-outer">
<div class="post hentry">
<div class="post-body entry-content">
<div><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4420 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/hudson-master-slave-setup.png" alt="hudson-master-slave-setup" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/hudson-master-slave-setup.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/hudson-master-slave-setup-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div style="margin-bottom: 0in;">The tasks can be scheduled to run on the same machine (Master), or on a different machine (Slave). A master is a installation of Hudson, that can manage one or more slaves. The role of master remains same in Master slave setup. It serves HTTP requests, and it can still build projects on it&#8217;s own.</div>
<div style="margin-bottom: 0in;">Slaves are computers that are setup to build projects triggered from the master. A separate program called <strong><em>slave agent</em></strong><span style="font-weight: normal;"> runs on slave computer. In this article we&#8217;ll discuss about how to setup Hudson to executed distributed builds using Master slave. One computer can be configured to execute multiple slave agents.</span></div>
<h1 class="western"><span style="font-size: large;">How it works</span></h1>
<div style="margin-bottom: 0in;">When the slaves are registered to a master, the master starts distributing loads to slaves. The delegation depends on the specific job. The job can be configured to either execute on the master, or it can be tied to a specific slave. On the other hand, the jobs can be configured to freely roam between slaves, wherein the job is executed using the free slave. As per the user is concerned, the setup is transparent. The results for all jobs are viewable using the Master, irrespective of the Slave that executed the job.</div>
<div style="margin-bottom: 0in;">The slave may be built using any Operating system. The Master slave setup is highly helpful while the user has to execute the job on different Operating system. Consider this use case: The application is expected to run on different operating system, Linux, Solaris and Windows system. To address this need, the user can install Hudson on any machine, say Linux, and add 2 slaves: Solaris and Windows. The user can add 3 different jobs, one running on Master itself and others running on slave machines.</div>
<h1 class="western"><span style="font-size: large;">Methods to set up Slave agents</span></h1>
<div style="margin-bottom: 0in;">The slave can be launched from Master using any of below methods:</div>
<ol>
<li>Launch Slave agents on Unix machines via SSH.</li>
<li>Launch Slave agents via JNLP.</li>
<li>Launch Slave agents via execution of command on the master.</li>
<li>Let Hudson control windows slave as a windows service.</li>
</ol>
<p>The following screenshot illustrates the list of modes under which the Hudson slave can be launched.<br />
<a style="margin-bottom: 1em; float: right; margin-left: 1em; clear: right;" href="http://3.bp.blogspot.com/_dWL7A18AuFA/S3p7yGMyE4I/AAAAAAAABEo/h6x1l2oCndM/s1600-h/hudson-slave-modes.png"><img loading="lazy" decoding="async" src="http://3.bp.blogspot.com/_dWL7A18AuFA/S3p7yGMyE4I/AAAAAAAABEo/h6x1l2oCndM/s640/hudson-slave-modes.png" width="640" height="51" border="0" /></a></p>
<p><em><span style="font-size: small;"><strong>Set up Slave agents on Unix machines via SSH</strong></span></em></p>
<div><span style="font-weight: normal;">Hudson has a built-in SSH client implementation that it can use to talk to remote sshd and start a slave agent. This is the most convenient and preferred method for Unix slaves, which normally has sshd out-of-the-box. Click </span><em><span style="font-weight: normal;">Manage Hudson</span></em><span style="font-weight: normal;">, then </span><em><span style="font-weight: normal;">Manage Nodes</span></em><span style="font-weight: normal;">, then click </span><em><span style="font-weight: normal;">New Node</span></em><span style="font-weight: normal;">. In this set up, the connection information is supplied, including SSH host name, user name and authentication credentials. The authentication is performed using password or ssh keys. If it is configured to use ssh keys, the SSH public key should be copied to </span><span style="font-family: Courier New, monospace;"><span style="font-weight: normal;">~/.ssh/authorized_keys</span></span><span style="font-weight: normal;"> file. Hudson will do the rest of the work by itself, including copying the binary needed for a slave agent, and starting/stopping slaves.</span></div>
<p>&nbsp;</p>
<blockquote>
<div style="text-align: justify;">Depending on the project and hardware resource availability, the user Desktop can be used as one of Slave, without affecting his day-to-day activities, thus avoiding the need for dedicated Slaves.</div>
</blockquote>
<h2 class="western"><em><span style="font-size: small;"><strong>Establish slave agent via Java Web Start</strong></span></em></h2>
<div style="font-weight: normal;">Another way of launching slave is to start a slave agent through Java Web Start (JNLP). In this approach, the user will login to the slave node, open a browser and open the slave page using the URL pointed to the Master. It may look like the following URL:</div>
<div style="font-weight: normal;"><span style="font-family: Courier New, monospace;">http://masterserver:port/hudson/jnlpJars/slave.jar</span></div>
<div style="font-weight: normal;">The user is presented with the JNLP launch icon. If user click the icon, the Java Web Start kicks in and it launches a slave agent on this computer.</div>
<div style="font-weight: normal;">This mode is convenient when the master cannot initiate a connection to slaves, such as when it runs outside a firewall while the rest of the slaves are in the firewall. The disadvantage is, if the machine with a slave agent goes down, the master has no way of re-launching it on its own.</div>
<h3 class="western"><em><span style="font-size: small;">Set up slave agent headlessly</span></em></h3>
<div style="margin-bottom: 0in; font-weight: normal;">This launch mode uses a mechanism very similar to Java Web Start, except that it runs without using GUI, making it convenient for an execution as a daemon on Unix. To do this, the user should configure this slave to be a JNLP slave by downloading <tt><span style="font-family: Courier New, monospace;"><em>slave.jar</em></span></tt>, and then from the slave, run a command like this:</div>
<pre style="font-weight: normal;"><span style="font-family: Courier New, monospace;"> </span></pre>
<pre style="font-weight: normal;"><span style="font-family: Courier New, monospace;">java -jar slave.jar -jnlpUrl http://yourserver:port/computer/slave-name/slave-agent.jnlp</span></pre>
<div style="margin-bottom: 0in; font-weight: normal;">
<p>The <span style="font-family: Courier New, monospace;">slave.jar</span> file is downloaded from the above mentioned URL. Make sure to replace <strong>slave-name</strong> with the name of the slave setup in Master.</p>
<blockquote><p>By default, Hudson runs on port 8080. It can be installed and managed without the need for super user privilege. The super user privilege is not required to manage both Master and Slave.</p></blockquote>
</div>
<p>The below diagram illustrates the list of configuration parameters specific to a slave.</p>
<div class="separator" style="text-align: center; clear: both;"><a style="margin-bottom: 1em; float: right; margin-left: 1em; clear: right;" href="http://3.bp.blogspot.com/_dWL7A18AuFA/S3qBFN_G-CI/AAAAAAAABEw/GYdxfv2w__4/s1600-h/hudson-slave-2.png"><img loading="lazy" decoding="async" src="http://3.bp.blogspot.com/_dWL7A18AuFA/S3qBFN_G-CI/AAAAAAAABEw/GYdxfv2w__4/s400/hudson-slave-2.png" width="400" height="176" border="0" /></a></div>
<p>&nbsp;</p>
<h2 class="western"><em><span style="font-size: small;">set up Slave Agent using own scripts</span></em></h2>
<div>If the above modes is not flexible, the user can write his own script to launch the Slave agent. The script is placed in the Master computer and Hudson runs this script whenever it should connect to the slave. The script may use the remote login program like SSH, RSH to establish connection between Master and slave.</div>
<div>The script would execute the slave agent program like <span style="font-family: Courier New, monospace;">java -jar slave.jar. </span><span style="font-family: Times New Roman, serif;">The stdin and stdout for the script should be connected to the master. For example, the script that does </span><span style="font-family: Courier New, monospace;">ssh myslave java -jar ~/bin/slave.jar</span><span style="font-family: Times New Roman, serif;"> would satisfy this need, when it is executed from the Master web interface. For this reason, running this script manually from the command line does no good.</span></div>
<div style="font-family: Arial, Helvetica, sans-serif;">The copy of slave.jar can be downloaded from the above mentioned URL. Launching the slave agent using this mode requires additional setup in the Slave. The benefit is that when the connection goes bad, the user can use Hudson web interface to re-establish the connection. <!-- BLOG_CMT_createIframe('http://www.blogger.com/rpc_relay.html', '12285068873195078521'); // --></div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/hudson-master-slave-setup/">How to Setup Configure Hudson Master Slave? &#8211; Complete Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/hudson-master-slave-setup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to put comment in Ant &#124; Comments in Apache Ant</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-put-comment-in-ant-comments-in-apache-ant/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-put-comment-in-ant-comments-in-apache-ant/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 22 Jul 2010 11:09:52 +0000</pubDate>
				<category><![CDATA[Apache Ant]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[Ant COmment Block]]></category>
		<category><![CDATA[Ant commenting]]></category>
		<category><![CDATA[Ant comments]]></category>
		<category><![CDATA[Ant multiline comments]]></category>
		<category><![CDATA[Comment]]></category>
		<category><![CDATA[Comments in Ant build]]></category>
		<category><![CDATA[Comments in Apache Ant]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to put comment in Ant]]></category>
		<category><![CDATA[Instructions]]></category>
		<category><![CDATA[Method]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/07/22/how-to-put-comment-in-ant-comments-in-apache-ant/</guid>

					<description><![CDATA[<p>How to put comment in Ant &#124; Comments in Apache Ant Method 1: &#60;!&#8211; Comments are just as important in [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-put-comment-in-ant-comments-in-apache-ant/">How to put comment in Ant | Comments in Apache Ant</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4418 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/comments-in-apache-ant.png" alt="comments-in-apache-ant" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/comments-in-apache-ant.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/comments-in-apache-ant-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>How to put comment in Ant | Comments in Apache Ant </strong></p>
<p><strong>Method 1:</strong></p>
<p>&lt;!&#8211; Comments are just as important in buildfiles, do not &#8211;&gt;<br />
&lt;!&#8211; avoid writing them! &#8211;&gt;<br />
&lt;!&#8211; Example build file for &#8220;Ant: The Definitive Guide&#8221; &#8211;&gt;<br />
&lt;!&#8211; and its sample project: irssibot &#8211;&gt;</p>
<p><strong>Method 2: Echo</strong><br />
<strong>Description</strong><br />
Writes a message to the Ant logging facilities. A message may be supplied<br />
as nested text to this task.<br />
Echoes a message to the current loggers and listeners which means System.out unless overridden. A level can be specified, which controls at what logging level the message is filtered at.<br />
The task can also echo to a file, in which case the option to append rather than overwrite the file is available, and the level option is ignored</p>
<h3>Parameters</h3>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong>Attribute</strong></td>
<td valign="top"><strong>Description</strong></td>
<td valign="top">
<p align="center"><strong>Required</strong></p>
</td>
</tr>
<tr>
<td valign="top">message</td>
<td valign="top">the message to echo.</td>
<td valign="top">
<p align="center">No. Text may also be included in a character section within this element. If neither is included a blank line will be emitted in the output.</p>
</td>
</tr>
<tr>
<td valign="top">file</td>
<td valign="top">the file to write the message to.</td>
<td valign="top">
<p align="center">No</p>
</td>
</tr>
<tr>
<td valign="top">append</td>
<td valign="top">Append to an existing file (or <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String, boolean)" target="_blank" rel="noopener">open a new file / overwrite an existing file</a>)?</td>
<td valign="top">
<p align="center">No &#8211; default is false.</p>
</td>
</tr>
<tr>
<td valign="top">level</td>
<td valign="top">Control the level at which this message is reported. One of &#8220;error&#8221;, &#8220;warning&#8221;, &#8220;info&#8221;, &#8220;verbose&#8221;, &#8220;debug&#8221; (decreasing order)</td>
<td valign="top">
<p align="center">No &#8211; default is &#8220;warning&#8221;.</p>
</td>
</tr>
<tr>
<td valign="top">encoding</td>
<td valign="top">encoding to use, default is &#8220;&#8221;; the local system encoding. <em>since Ant 1.7</em></td>
<td valign="top">
<p align="center">No</p>
</td>
</tr>
</tbody>
</table>
<p><strong>Examples</strong><br />
<strong>Style 1:</strong><br />
&lt;echo message=&#8221;Hello, world&#8221;/&gt;</p>
<p><strong>Style 2:</strong><br />
&lt;echo message=&#8221;Embed a line break:${line.separator}&#8221;/&gt;</p>
<p><strong>Style 3:</strong><br />
&lt;echo&gt;Embed another:${line.separator}&lt;/echo&gt;</p>
<p><strong>Style 4:</strong><br />
&lt;echo&gt;This is a longer message stretching over<br />
two lines.<br />
&lt;/echo&gt;</p>
<p><strong>Style 5:</strong><br />
&lt;echo&gt;<br />
This is a longer message stretching over<br />
three lines; the first line is a blank<br />
&lt;/echo&gt;</p>
<p><strong>Style 5:</strong><br />
&lt;echo message=&#8221;Deleting drive C:&#8221; level=&#8221;debug&#8221;/&gt;<br />
A message which only appears in -debug mode.</p>
<p><strong>Style 6:</strong><br />
&lt;echo level=&#8221;error&#8221;&gt;<br />
Imminent failure in the antimatter containment facility.<br />
Please withdraw to safe location at least 50km away.<br />
&lt;/echo&gt;<br />
A message which appears even in -quiet mode.</p>
<p><strong>Style 7:</strong><br />
&lt;echo file=&#8221;runner.csh&#8221; append=&#8221;false&#8221;&gt;#\!/bin/tcsh<br />
java-1.3.1 -mx1024m ${project.entrypoint} $$*<br />
&lt;/echo&gt;<br />
Generate a shell script by echoing to a file. Note the use of a double $ symbol to stop Ant filtering out the single $ during variable expansion<br />
Depending on the loglevel Ant runs, messages are print out or silently ignored:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong>Ant-Statement</strong></td>
<td valign="top">
<p align="center"><strong>-quiet, -q</strong></p>
</td>
<td valign="top">
<p align="center"><strong><em>no statement</em></strong></p>
</td>
<td valign="top">
<p align="center"><strong>-verbose, -v</strong></p>
</td>
<td valign="top">
<p align="center"><strong>-debug, -d</strong></p>
</td>
</tr>
<tr>
<td valign="top"><strong>&lt;echo message=&#8221;This is error message.&#8221; level=&#8221;error&#8221; /&gt;</strong></td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
</tr>
<tr>
<td valign="top"><strong>&lt;echo message=&#8221;This is warning message.&#8221; /&gt;</strong></td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
</tr>
<tr>
<td valign="top"><strong>&lt;echo message=&#8221;This is warning message.&#8221; level=&#8221;warning&#8221; /&gt;</strong></td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
</tr>
<tr>
<td valign="top"><strong>&lt;echo message=&#8221;This is info message.&#8221; level=&#8221;info&#8221; /&gt;</strong></td>
<td valign="top">
<p align="center">not logged</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
</tr>
<tr>
<td valign="top"><strong>&lt;echo message=&#8221;This is verbose message.&#8221; level=&#8221;verbose&#8221; /&gt;</strong></td>
<td valign="top">
<p align="center">not logged</p>
</td>
<td valign="top">
<p align="center">not logged</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
</tr>
<tr>
<td valign="top"><strong>&lt;echo message=&#8221;This is debug message.&#8221; level=&#8221;debug&#8221; /&gt;</strong></td>
<td valign="top">
<p align="center">not logged</p>
</td>
<td valign="top">
<p align="center">not logged</p>
</td>
<td valign="top">
<p align="center">not logged</p>
</td>
<td valign="top">
<p align="center">ok</p>
</td>
</tr>
</tbody>
</table>
<p><strong>Method 3:</strong><br />
Description</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-put-comment-in-ant-comments-in-apache-ant/">How to put comment in Ant | Comments in Apache Ant</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-put-comment-in-ant-comments-in-apache-ant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A sample Ant build script that builds a WAR file &#8211;  Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/a-sample-ant-build-script-that-builds-a-war-file/</link>
					<comments>https://www.scmgalaxy.com/tutorials/a-sample-ant-build-script-that-builds-a-war-file/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 22 Jul 2010 11:05:35 +0000</pubDate>
				<category><![CDATA[Build Management & Tools]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[Ant Build]]></category>
		<category><![CDATA[Ant build script]]></category>
		<category><![CDATA[Ant build script for WAR file]]></category>
		<category><![CDATA[Ant script to build War file]]></category>
		<category><![CDATA[Ant WAR task]]></category>
		<category><![CDATA[ant war task meta inf example]]></category>
		<category><![CDATA[Build WAR file]]></category>
		<category><![CDATA[Build War file using Ant]]></category>
		<category><![CDATA[Build War File with Ant]]></category>
		<category><![CDATA[commands]]></category>
		<category><![CDATA[create war file using ant command]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Sample]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WAR file]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/07/22/a-sample-ant-build-script-that-builds-a-war-file/</guid>

					<description><![CDATA[<p>A sample Ant build script that builds a WAR file &#60;project name=&#8221;MyWebApplication&#8221; basedir=&#8221;..&#8221; default=&#8221;install&#8221;&#62; &#60;!&#8211; project-specific variables &#8211;&#62; &#60;property name=&#8221;jsp.dir.name&#8221; [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/a-sample-ant-build-script-that-builds-a-war-file/">A sample Ant build script that builds a WAR file &#8211;  Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4408" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/ant-build-script.png" alt="ant-build-script-war-file" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/ant-build-script.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/07/ant-build-script-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>A sample Ant build script that builds a WAR file</strong></p>
<p>&lt;project name=&#8221;MyWebApplication&#8221; basedir=&#8221;..&#8221; default=&#8221;install&#8221;&gt;</p>
<p>&lt;!&#8211; project-specific variables &#8211;&gt;<br />
&lt;property name=&#8221;jsp.dir.name&#8221; value=&#8221;myapp&#8221; /&gt;<br />
&lt;property name=&#8221;package.name&#8221; value=&#8221;${jsp.dir.name}.war&#8221; /&gt;<br />
&lt;property name=&#8221;webapp.dir&#8221; value=&#8221;/Users/al/tomcat-6.0.16/webapps&#8221; /&gt;</p>
<p>&lt;property environment=&#8221;env&#8221; /&gt;<br />
&lt;property name=&#8221;build.dir&#8221; value=&#8221;build&#8221; /&gt;<br />
&lt;property file=&#8221;${build.dir}/build.${env.HOSTNAME}&#8221; /&gt;</p>
<p>&lt;property name=&#8221;lib.dir&#8221; value=&#8221;lib&#8221; /&gt;<br />
&lt;property name=&#8221;pages.dir&#8221; value=&#8221;pages&#8221; /&gt;<br />
&lt;property name=&#8221;src.dir&#8221; value=&#8221;src&#8221; /&gt;<br />
&lt;property name=&#8221;src.tests.dir&#8221; value=&#8221;src-tests&#8221; /&gt;<br />
&lt;property name=&#8221;resources.dir&#8221; value=&#8221;resources&#8221; /&gt;<br />
&lt;property name=&#8221;dest.dir&#8221; value=&#8221;target&#8221; /&gt;</p>
<p>&lt;!&#8211; put everything in a temp folder with the right structure during the build &#8211;&gt;<br />
&lt;property name=&#8221;temp.dir&#8221; value=&#8221;temp&#8221; /&gt;<br />
&lt;property name=&#8221;temp.dir.web-inf&#8221; value=&#8221;${temp.dir}/WEB-INF&#8221; /&gt;<br />
&lt;property name=&#8221;temp.dir.lib&#8221; value=&#8221;${temp.dir.web-inf}/lib&#8221; /&gt;<br />
&lt;property name=&#8221;temp.dir.classes&#8221; value=&#8221;${temp.dir.web-inf}/classes&#8221; /&gt;<br />
&lt;property name=&#8221;temp.dir.meta-inf&#8221; value=&#8221;${temp.dir}/META-INF&#8221; /&gt;</p>
<p>&lt;property name=&#8221;package.file&#8221; value=&#8221;${dest.dir}/${package.name}&#8221; /&gt;</p>
<p>&lt;path id=&#8221;build.class.path&#8221;&gt;<br />
&lt;fileset dir=&#8221;lib&#8221;&gt;<br />
&lt;include name=&#8221;**/*.jar&#8221; /&gt;<br />
&lt;/fileset&gt;<br />
&lt;/path&gt;</p>
<p>&lt;target name=&#8221;clean&#8221;&gt;<br />
&lt;delete&gt;<br />
&lt;fileset dir=&#8221;${dest.dir}&#8221; includes=&#8221;**/*&#8221;/&gt;<br />
&lt;/delete&gt;<br />
&lt;delete dir=&#8221;${temp.dir}&#8221; /&gt;<br />
&lt;delete dir=&#8221;${temp.dir.classes}&#8221; /&gt;<br />
&lt;delete dir=&#8221;${temp.dir.meta-inf}&#8221; /&gt;<br />
&lt;delete dir=&#8221;${temp.dir.web-inf}&#8221; /&gt;<br />
&lt;/target&gt;</p>
<p>&lt;target name=&#8221;prepare&#8221; depends=&#8221;clean&#8221;&gt;<br />
&lt;mkdir dir=&#8221;${dest.dir}&#8221; /&gt;<br />
&lt;mkdir dir=&#8221;${temp.dir}&#8221; /&gt;<br />
&lt;mkdir dir=&#8221;${temp.dir.lib}&#8221; /&gt;<br />
&lt;mkdir dir=&#8221;${temp.dir.meta-inf}&#8221; /&gt;<br />
&lt;mkdir dir=&#8221;${temp.dir.web-inf}&#8221; /&gt;<br />
&lt;mkdir dir=&#8221;${temp.dir.classes}&#8221; /&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; COMPILE &#8211;&gt;<br />
&lt;target name=&#8221;compile&#8221; depends=&#8221;prepare&#8221;&gt;<br />
&lt;echo&gt;=== COMPILE ===&lt;/echo&gt;<br />
&lt;echo&gt;Compiling ${src.dir} files &#8230;&lt;/echo&gt;<br />
&lt;javac debug=&#8221;on&#8221; srcdir=&#8221;${src.dir}&#8221; destdir=&#8221;${temp.dir.classes}&#8221; includes=&#8221;**/*&#8221;&gt;<br />
&lt;classpath refid=&#8221;build.class.path&#8221; /&gt;<br />
&lt;/javac&gt;</p>
<p>&lt;!&#8211; compile files on the src-tests path &#8211;&gt;<br />
&lt;echo&gt;Compiling ${src.tests.dir} files &#8230;&lt;/echo&gt;<br />
&lt;javac debug=&#8221;on&#8221; srcdir=&#8221;${src.tests.dir}&#8221; destdir=&#8221;${temp.dir.classes}&#8221; includes=&#8221;com/**&#8221;&gt;<br />
&lt;classpath refid=&#8221;build.class.path&#8221; /&gt;<br />
&lt;/javac&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; PACKAGE &#8211;&gt;<br />
&lt;target name=&#8221;package&#8221; depends=&#8221;compile&#8221;&gt;<br />
&lt;echo&gt;=== PACKAGE ===&lt;/echo&gt;</p>
<p>&lt;!&#8211; copy the config files &#8211;&gt;<br />
&lt;copy file=&#8221;${resources.dir}/MANIFEST.MF&#8221; tofile=&#8221;${temp.dir.meta-inf}/MANIFEST.MF&#8221; overwrite=&#8221;true&#8221; /&gt;<br />
&lt;copy file=&#8221;${resources.dir}/web.xml&#8221; tofile=&#8221;${temp.dir.web-inf}/web.xml&#8221; overwrite=&#8221;true&#8221; /&gt;<br />
&lt;copy file=&#8221;${resources.dir}/managed-beans.xml&#8221; tofile=&#8221;${temp.dir.web-inf}/managed-beans.xml&#8221; overwrite=&#8221;true&#8221; /&gt;<br />
&lt;copy file=&#8221;${resources.dir}/navigation-rules.xml&#8221; tofile=&#8221;${temp.dir.web-inf}/navigation-rules.xml&#8221; overwrite=&#8221;true&#8221; /&gt;</p>
<p>&lt;copy todir=&#8221;${temp.dir.classes}&#8221;&gt;<br />
&lt;fileset dir=&#8221;${src.dir}&#8221;&gt;<br />
&lt;include name=&#8221;**/*.xml&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.xsl&#8221;/&gt;<br />
&lt;/fileset&gt;<br />
&lt;/copy&gt;</p>
<p>&lt;!&#8211; with all resources in place, create the war file &#8211;&gt;<br />
&lt;war destfile=&#8221;${package.file}&#8221; webxml=&#8221;${temp.dir.web-inf}/web.xml&#8221; basedir=&#8221;${temp.dir}&#8221;&gt;<br />
&lt;fileset dir=&#8221;${pages.dir}&#8221;/&gt;<br />
&lt;lib dir=&#8221;${lib.dir}&#8221; /&gt;<br />
&lt;classes dir=&#8221;${temp.dir.classes}&#8221; /&gt;<br />
&lt;/war&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; JUST DEPLOY JSP&#8217;s &#8211;&gt;<br />
&lt;target name=&#8221;jsps&#8221;&gt;<br />
&lt;echo&gt;=== DEPLOY JSP&#8217;S ===&lt;/echo&gt;<br />
&lt;!&#8211; i&#8217;m trying to be explicit about what i put out there &#8211;&gt;<br />
&lt;copy todir=&#8221;${webapp.dir}/${jsp.dir.name}&#8221;&gt;<br />
&lt;fileset dir=&#8221;${pages.dir}&#8221;&gt;<br />
&lt;include name=&#8221;**/*.jsp&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.html&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.css&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.gif&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.jpg&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.png&#8221;/&gt;<br />
&lt;include name=&#8221;**/*.js&#8221;/&gt;<br />
&lt;/fileset&gt;<br />
&lt;/copy&gt;<br />
&lt;/target&gt;</p>
<p>&lt;!&#8211; INSTALL &#8211;&gt;<br />
&lt;target name=&#8221;install&#8221; depends=&#8221;package&#8221;&gt;<br />
&lt;echo&gt;=== INSTALL ===&lt;/echo&gt;<br />
&lt;copy file=&#8221;${package.file}&#8221; tofile=&#8221;${webapp.dir}/${package.name}&#8221; overwrite=&#8221;true&#8221; /&gt;<br />
&lt;/target&gt;</p>
<p>&lt;/project&gt;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/a-sample-ant-build-script-that-builds-a-war-file/">A sample Ant build script that builds a WAR file &#8211;  Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/a-sample-ant-build-script-that-builds-a-war-file/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to install subversion on Linux?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-install-subversion-on-linux/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-install-subversion-on-linux/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 27 Jun 2010 04:39:49 +0000</pubDate>
				<category><![CDATA[SVN(Subversion)]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[how to install svn in linux step by step]]></category>
		<category><![CDATA[How to install SVN on Linux]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversion Installation in Linux Guide]]></category>
		<category><![CDATA[Subversion Installation in Linux Instructions]]></category>
		<category><![CDATA[Subversion Installation in Linux References]]></category>
		<category><![CDATA[Subversion Installation in Linux Tutorial]]></category>
		<category><![CDATA[Subversion Installation Process in Linux]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[SVN COnfiguration]]></category>
		<category><![CDATA[SVN Installation in Linux Guide]]></category>
		<category><![CDATA[SVN Setup in Linux]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/06/27/how-to-install-subversion-on-linux/</guid>

					<description><![CDATA[<p>To install svn in linux and make it fully working , I found it really tough and it has taken [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-install-subversion-on-linux/">How to install subversion on Linux?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4429 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/06/subversion-on-linux-install.png" alt="subversion-on-linux-installation-process" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/06/subversion-on-linux-install.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/06/subversion-on-linux-install-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>To install svn in linux and make it fully working , I found it really tough and it has taken my lots of time. I am thankful to Sanjay, who helped me in this and without him it won’t be possible.While installing this you will miss a small thing and you got stuck.But this is not at all tough like open source it’s really very easy.</p>
<p>Why I have choosed this topic to write is that, those who are using it first time will need some time to get full of subversion.</p>
<p>Now the latest version of svn is 1.6.9.</p>
<p><strong>To install svn first you need svn tar file. Which can be downloaded easily from here or you can run these commands (depending on your required version).</strong></p>
<p>wget http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz</p>
<p>wget http://subversion.tigris.org/downloads/subversion_deps-1.6.9.tar.gz (It contains the library required by svn)</p>
<p>This you can download any where, Here I am creating a folder svn inside /usr/local directory.(/usr/local/softwares/svn/).(So it will be easy for me to specify paths and you to understand).</p>
<p><strong>To start the installation process first untar this two file.</strong></p>
<p>tar -xvzf subversion-1.6.9.tar.gz</p>
<p>tar -xvzf subversion_deps-1.6.9.tar.gz (After untar you won’t find any particular folder named subversion_deps-1.6.9. Don’t worry for that it is keeping all the libraries files inside subversion-1.6.9)</p>
<p><strong>Now have to configure it, but before that we have to check whether our system is having all the dependies or not, like APR(Apache Portable Runtime) and APR utility.</strong></p>
<p>If it’s not there then we can get it from here,</p>
<p>apr-1.2.12.tar.gz</p>
<p>apr-util-1.2.12.tar.gz</p>
<p><strong>once downloaded you can start configuring it.</strong></p>
<p>tar -xvzf apr-1.2.12.tar.gz</p>
<p>cd apr-1.2.12</p>
<p>./buildconf</p>
<p>./configure</p>
<p>make</p>
<p><strong>The apr util directory requires apr directory, so we need to specify path for that.</strong></p>
<p>tar -xvzf apr-util-1.2.12.tar.gz</p>
<p>cd apr-util-1.2.12</p>
<p>./buildconf –with-apr=/path to apr directory (/usr/local/sofwares/svn/apr-1.2.12)</p>
<p>./configure –with-apr=/path to apr directory (/usr/local/sofwares/svn/apr-1.2.12)</p>
<p>make</p>
<p>The other directories we have to check before installation are,</p>
<p>autoconf 2.50 or newer (autoconf –version)</p>
<p>libtool 1.4 or newer (this you can find inside subversion-1.6.9 folder)</p>
<p>Neon Library 0.25.x or 0.26.x (inside subversion-1.6.9 folder)</p>
<p>Berkely DataBase (If it’s not there you have to install it.)</p>
<p>Download the file, db-4.6.21.tar.gz .</p>
<p>Apache web server greater then 2.0.49 (httpd -version)</p>
<p>zlib (inside subversion-1.6.9 folder)</p>
<p>After checking all this, we can start installation process,</p>
<p>cd subversion-1.6.9</p>
<p>./autogen.sh</p>
<p>./configure –with-berkelay-db=/usr/local/softwares/svn/db-4.6.21 (path of berkelay data base)</p>
<p>make</p>
<p>make install</p>
<p>Once we have finished that we need to map svn with apache.</p>
<p>Before that we have to check whether mod_dav_svn and mod_authz_svn modules are present or not,if not then install it.</p>
<p>yum install mod_dav_svn</p>
<p>and add this in /etc/httpd/conf/httpd.conf file</p>
<p>LoadModule dav_svn_module modules/mod_dav_svn.so</p>
<p>LoadModule authz_svn_module modules/mod_authz_svn.so</p>
<p>Make sure you will add these lines after LoadModule dav_module modules/mod_dav.so.</p>
<p>Now create one repository with svnadmin command.Run this command inside your subversion folder.</p>
<p>svnadmin create repos</p>
<p>after that you can check with,</p>
<p>ls repos</p>
<p>conf dav db format hooks locks README.txt</p>
<p>This full path you have to specify in SVNPath.</p>
<p>Then at the end of the httpd.conf file you have to add</p>
<p>#for svn path</p>
<p>DAV svn</p>
<p>SVNPath /usr/local/softwares/svn/subversion-1.6.9/repos</p>
<p>now restart ur apache.</p>
<p><strong>For security purpose to give authentication to the user we have to create authentication file with the command,</strong></p>
<p>htpasswd -cm /etc/svn-auth-file user_name (test)</p>
<p>New password : test123</p>
<p>Re-Type passwd : test123</p>
<p>And to specify which access you want to give the user, create svn-access-file inside /etc.</p>
<p>Inside this file add code as,</p>
<p>[/]</p>
<p>* = rw</p>
<p>This will give authentication to every user specified in Require user inside location.</p>
<p><strong>You can specify this inside httpd.conf file as,</strong></p>
<p>DAV svn</p>
<p>SVNPath /usr/local/softwares/svn/subversion-1.6.9/repos</p>
<p>AuthzSVNAccessFile /etc/svn-access-file</p>
<p>AuthType Basic</p>
<p>AuthName “Subversion repository”</p>
<p>AuthUserFile /etc/svn-auth-file</p>
<p>Require user user_name</p>
<p><strong> </strong></p>
<p><strong>Now you are ready to import files in the repository, with the following command.</strong></p>
<p>svn import -m “Initial import.” path(from where you want to import file) file:///usr/local/softwares/svn/subversion-1.6.9/repos/(repository path)</p>
<p>after running this command don’t worry it is not goin to display any thing inside repos folder. To check that you can run it in the browser.</p>
<p>http://localhost(you have to give your domain name)/svn/repos</p>
<p>Now you are ready to checkout the files with any svn client. For linux user smartsvn is best.</p>
<p>After doin this you can start ur smartsvn client and can follow these steps,</p>
<p>check out project from repository -&gt; manage -&gt; add -&gt; enter svn url</p>
<p>enter ur url here http://localhost/svn/repos</p>
<p>enter -&gt;ok</p>
<p>server name and repository path it will take automatically. click next, choose user radio button and give user name and password.</p>
<p>follow the steps to fetch the files.</p>
<p><strong> </strong></p>
<p><strong>To install smartsvn, first get the smartsvn tar file.</strong></p>
<p>untar the file, with the command</p>
<p>tar -xvzf smartsvn-version.gz</p>
<p>for smartsvn first check the correct version of java is available or not, with</p>
<p>java -version command.If it is coming like this then you can proceed.</p>
<p>java version “1.5.0_14?</p>
<p>Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)</p>
<p>Java HotSpot(TM) Server VM (build 1.5.0_14-b03, mixed mode)</p>
<p>Sometimes java will be installed but not the JRE. In that case simply re-install java.</p>
<p>Can install the latest version of java with rpm bin file.</p>
<p>jdk-1_5_0_14-linux-i586-rpm.bin</p>
<p>./jdk-1_5_0_14-linux-i586-rpm.bin</p>
<p>go through the license and say yes.</p>
<p>It will installed in /usr/java/</p>
<p>Now have to make chnages in .bash_profile file.</p>
<p>cd /root</p>
<p>vi .bash_profile</p>
<p>give JAVA_HOME path.</p>
<p>JAVA_HOME = /usr/java/jdk1.5.0_14</p>
<p><strong>Then compile it with the command,</strong></p>
<p>source .bash_profile</p>
<p>then again check with java version.</p>
<p>Now you are ready to utilise the full feature of subversion</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-install-subversion-on-linux/">How to install subversion on Linux?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-install-subversion-on-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How we reduced build time from 8 hours to 1 hour ? &#8211; Complete Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/how-we-reduced-build-time-from-8-hours-to-1-hour/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-we-reduced-build-time-from-8-hours-to-1-hour/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 21 Jun 2010 09:30:11 +0000</pubDate>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Build Process time]]></category>
		<category><![CDATA[Build time]]></category>
		<category><![CDATA[Build time Optimization]]></category>
		<category><![CDATA[Decrease Build Time]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to reduced build time]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Lessen Build Time]]></category>
		<category><![CDATA[Method]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Reduce]]></category>
		<category><![CDATA[Save build time]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Ways]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/06/21/how-we-reduced-build-time-from-8-hours-to-1-hour/</guid>

					<description><![CDATA[<p>Situation For one of our clients, Build is taking 8 hours and nightly build is failing frequently. Test case execution [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-we-reduced-build-time-from-8-hours-to-1-hour/">How we reduced build time from 8 hours to 1 hour ? &#8211; Complete Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4425 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/06/hudson-master-slave-setup.png" alt="hudson-master-slave-setup" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/06/hudson-master-slave-setup.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/06/hudson-master-slave-setup-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>Situation</strong></p>
<ol>
<li>For one of our clients, Build is taking 8 hours and nightly build is failing frequently.</li>
<li>Test case execution is consuming more time than the compilation.</li>
<li>Low confidence levels for developers on nightly builds and subsequently during integration cycle.</li>
</ol>
<p><strong>Approach</strong></p>
<ol>
<li>We reviewed the whole set of build scripts being used and test case suite to check how we can refatcor them.</li>
<li>Verified the build infrastructure i.e., build server capacity from hardware point of view.</li>
<li>Feasibility study done to check how a CI environment help in giving faster feedback on the quality.</li>
</ol>
<p><strong><br />
Solution</strong></p>
<ol>
<li>Refactoring done for build scripts to make modules compilation parallel (wherever possible).</li>
<li>Some test cases are selected (which don’t require external services like database) to run as part of the build.</li>
<li>CI environment (using open source cruise control) is established to run builds per commit and execute only above set of test cases as part of the build.</li>
<li>Set up low-cost remote agent machine which will run remaining test suite once per day.</li>
</ol>
<p><strong>Results</strong></p>
<ol>
<li>Build took only 1 hour and gave faster feedback to dev team.</li>
<li>CI environment provided good confidence to dev team.</li>
<li>Team is able to implement more best practices.</li>
<li>Effective use of existing build  infrastructure (hardware) ensured no further cost is required.</li>
<li>This helped the client in ensuring smooth release management.</li>
</ol>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-we-reduced-build-time-from-8-hours-to-1-hour/">How we reduced build time from 8 hours to 1 hour ? &#8211; Complete Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-we-reduced-build-time-from-8-hours-to-1-hour/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HOWTO: Install e17 from SVN/source on Ubuntu</title>
		<link>https://www.scmgalaxy.com/tutorials/howto-install-e17-from-svn-source-on-ubuntu/</link>
					<comments>https://www.scmgalaxy.com/tutorials/howto-install-e17-from-svn-source-on-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 03 May 2010 06:42:04 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[E17]]></category>
		<category><![CDATA[Enlightenment]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to install E17 on Ubuntu]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Install e17]]></category>
		<category><![CDATA[Instructions]]></category>
		<category><![CDATA[Procedure]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Steps to Install E17 on Ubuntu]]></category>
		<category><![CDATA[Subversion in Ubuntu Installation Guide]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/05/03/howto-install-e17-from-svn-source-on-ubuntu/</guid>

					<description><![CDATA[<p>E17 is a lightweight window manager/bundle of libraries for Unix based operating systems. E17 is designed to be both elegant [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/howto-install-e17-from-svn-source-on-ubuntu/">HOWTO: Install e17 from SVN/source on Ubuntu</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4388 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/install-e17-from-svn-source.png" alt="install-e17-from-svn-source" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/install-e17-from-svn-source.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/install-e17-from-svn-source-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><a href="http://www.enlightenment.org/">E17</a> is a lightweight window manager/bundle of libraries for Unix based operating systems. E17 is designed to be both elegant and fast &#8211; two goals it succeeds at very well. The only problem is that installing E17 on Ubuntu (and it&#8217;s derivatives) is not a very straight forward process if you have never done it before, the following are the steps I have taken to get the E17 environment up and running on Ubuntu 9.10 (however it should work for all Ubuntu based systems).</p>
<p><span style="font-weight: bold;">Step 1:</span> Install the build dependencies, to do this simply paste the following chunk of code into your favorite terminal and let it work it&#8217;s magik</p>
<p><span style="font-style: italic;">sudo apt-get install xterm make gcc bison flex subversion cvs automake1.10 autoconf autotools-dev autoconf-archive libtool gettext libpam0g-dev libfreetype6-dev libpng12-dev zlib1g-dev libjpeg62-dev libtiff4-dev libungif4-dev librsvg2-dev libx11-dev libxcursor-dev libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev libxcomposite-dev libxss-dev libxp-dev libxext-dev libxinerama-dev libxft-dev libxfont-dev libxi-dev libxv-dev libxkbfile-dev libxkbui-dev libxres-dev libxtst-dev libltdl7-dev libglu1-xorg-dev libglut3-dev xserver-xephyr libdbus-1-dev liblua5.1-0-dev</span></p>
<p><span style="font-weight: bold;">Step 2:</span> Now that we have all the dependencies installed, we are going to use the <a href="http://omicron.homeip.net/projects/easy_e17/easy_e17.sh">easy e17 script</a> to download, compile, and install e17 from SVN. To do so click on the link I just provided to download the script. Then assuming you downloaded the file to the default Downloads folder run the following in terminal to get the install going</p>
<p><span style="font-style: italic;">cd ~/Downloads &amp;&amp; chmod +x easy_e17.sh &amp;&amp; sudo ./easy_e17.sh</span> <span style="font-style: italic;">-i</span></p>
<p>Go get a cup of coffee or something, the length of time the above command takes to complete depends on your Internet connection and computer speed.</p>
<p><span style="font-weight: bold;">Step 3:</span> Now assuming the commands you ran in step 2 finishes without issues/errors check the output in terminal, it should mention some &#8220;environmental variables&#8221; that need to be set. Copy and paste each of the export lines it lists to you and run them in terminal.</p>
<p><span style="font-weight: bold;">Step 4:</span> We need to copy the elightenment .desktop file to the proper location in your shared folder so it appears as a log in option in gdm/kdm. To do so run the following in terminal</p>
<p><span style="font-style: italic;">sudo cp /opt/e17/share/xsessions/elightenment.desktop /usr/share/xsessions/enlightenment.desktop</span></p>
<p>Log out of your current desktop and select &#8220;Enlightenment&#8221; from the log in options you are presented with in your login manager.</p>
<p>Enjoy your new E17 powered desktop! Also please remember E17 is considered beta software &#8211; so it is not encouraged to use it on production machines. Lastly I would like to also say that while the default configuration of e17 appears crude at first, this is intentional. E17 is <span style="font-style: italic;">extremely</span> customizable. Play with settings, move things around, add and remove objects and you will see creating a beautiful and customized desktop is just a few clicks away!</p>
<p><b>Source:</b></p>
<p><a href="http://jeffhoogland.blogspot.com/2010/05/howto-install-e17-from-svnsource-on.html" target="_blank" rel="noopener">http://jeffhoogland.blogspot.com/2010/05/howto-install-e17-from-svnsource-on.html</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/howto-install-e17-from-svn-source-on-ubuntu/">HOWTO: Install e17 from SVN/source on Ubuntu</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/howto-install-e17-from-svn-source-on-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to read XML file by using shell script ?</title>
		<link>https://www.scmgalaxy.com/tutorials/reading-xml-file-using-shell-script/</link>
					<comments>https://www.scmgalaxy.com/tutorials/reading-xml-file-using-shell-script/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 03 May 2010 06:40:34 +0000</pubDate>
				<category><![CDATA[Shell Script]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Read]]></category>
		<category><![CDATA[Read XML File]]></category>
		<category><![CDATA[Read XML file using shell script]]></category>
		<category><![CDATA[Read XML with Shell Script]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell script]]></category>
		<category><![CDATA[shell script for reading xml content]]></category>
		<category><![CDATA[Using]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[XML File Reading by Shell script]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/05/03/reading-xml-file-using-shell-script/</guid>

					<description><![CDATA[<p>This was like the first time where I had to write something that will be able to read something out [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/reading-xml-file-using-shell-script/">How to read XML file by using shell script ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4367 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/xml-file-using-shell-script.png" alt="read-xml-file-using-shell-script" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/xml-file-using-shell-script.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/xml-file-using-shell-script-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>This was like the first time where I had to write something that will be able to read something out of a XML file using a shell script. Usually I would use Python/Perl as my favorite choices in such a scenario but in this one I really *had* to do all within a shell script.</p>
<p>This is an example of the type of XML file I had to read:</p>
<p><code>Fixed a new bug<br />
Shoaib Mir<br />
Sun, 02 May 2010<br />
shoaibmir[@]gmail.com</code></p>
<p>I ended up having a shell script like this:<br />
<code><br />
#!/bin/bash</code></p>
<p><code>#Looking for four keywords in here<br />
for key in changelog name date email<br />
do<br />
OUTPT=`grep  $key log.xml | tr -d '\t' | sed 's/^\([^&lt;].*\)$/\1/' `<br />
eval ${key}=`echo -ne \""${OUTPT}"\"`<br />
done</code></p>
<p># Getting the results in four specific arrays<br />
changelogarr=( `echo ${changelog}` )<br />
namearr=( `echo ${name}` )<br />
datearr=( `echo ${date}` )<br />
emailarr=( `echo ${email}` )</p>
<p><code>#Print all Arrays<br />
echo ${changelogarr[@]}<br />
echo ${namearr[@]}<br />
echo ${datearr[@]}<br />
echo ${emailarr[@]}<br />
</code></p>
<p>Which gives me an output:<br />
<code><br />
shoaib@shoaib-desktop:~/Desktop$ ./readxml.sh<br />
Fixed a new bug Shoaib Mir<br />
Sun, 02 May 2010<br />
shoaibmir[@]gmail.com</code></p>
<p>&nbsp;</p>
<p><b>Reference:</b></p>
<blockquote class="wp-embedded-content" data-secret="cc6RXB1pS5"><p><a href="https://shoaibmir.wordpress.com/2010/05/02/reading-xml-file-using-shell-scripting/">Reading XML file using shell&nbsp;script</a></p></blockquote>
<p><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Reading XML file using shell&nbsp;script&#8221; &#8212; Life in the fast lane..." src="https://shoaibmir.wordpress.com/2010/05/02/reading-xml-file-using-shell-scripting/embed/#?secret=UX3iRl5qM9#?secret=cc6RXB1pS5" data-secret="cc6RXB1pS5" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/reading-xml-file-using-shell-script/">How to read XML file by using shell script ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/reading-xml-file-using-shell-script/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Work on remote Subversion repositories locally with Git</title>
		<link>https://www.scmgalaxy.com/tutorials/work-on-remote-subversion-repositories-locally-with-git/</link>
					<comments>https://www.scmgalaxy.com/tutorials/work-on-remote-subversion-repositories-locally-with-git/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 28 Apr 2010 09:11:08 +0000</pubDate>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[SVN(Subversion)]]></category>
		<category><![CDATA[Convert Subversion repository to Git]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git svn guide]]></category>
		<category><![CDATA[Git with Subversion]]></category>
		<category><![CDATA[git-svn plugin]]></category>
		<category><![CDATA[git-svn tutorial]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Remote]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversion repository]]></category>
		<category><![CDATA[SVN repository]]></category>
		<category><![CDATA[SVN server]]></category>
		<category><![CDATA[Use Git With Subversion Repositories]]></category>
		<category><![CDATA[Using Git with Subversion]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Work on Subversion with Git Guide]]></category>
		<category><![CDATA[Work on Subversion with Git Instructions]]></category>
		<category><![CDATA[Work on Subversion with Git Tutorial]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/04/28/work-on-remote-subversion-repositories-locally-with-git/</guid>

					<description><![CDATA[<p>Work on remote Subversion repositories locally with Git Version control is great stuff, and being able to combine different version [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/work-on-remote-subversion-repositories-locally-with-git/">Work on remote Subversion repositories locally with Git</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4323" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/remote-subversio-git.png" alt="remote-subversion-git" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/remote-subversio-git.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/remote-subversio-git-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>Work on remote Subversion repositories locally with Git</strong></p>
<p>Version control is great stuff, and being able to combine different version control mechanisms is even better. Subversion is a very popular version control system and a lot of repositories (public or otherwise) use Subversion to manage files. Git is another popular one, but what happens if you are working on a project where Subversion is used but Git is your preferred version control system?</p>
<p>With the git-svn plugin, you can have the best of both worlds. You can convert a Subversion repository to Git, use Git tools, then push the changes back to Subversion.</p>
<p><strong>To begin, you will need the git-svn plugin installed. Most likely, if your distribution of choice provides Git, it will also provide git-svn. On Fedora, install it using:</strong></p>
<p># yum install git-svn</p>
<p>Then use git-svn to check out your Subversion repository into Git format:</p>
<p>% mkdir -p ~/git/code</p>
<p>$ cd ~/git/code</p>
<p>% git svn init http://svn.host.com/svn/code</p>
<p><strong>Initialized empty Git repository in /home/user/git/code/.git/</strong></p>
<p>% git svn fetch</p>
<p>This may take a while on large repositories</p>
<p>r267 = 079b7c1cff49187d1aabc4b16f316102088fdc0d (refs/remotes/git-svn)</p>
<p>W: +empty_dir: trunk</p>
<p>r268 = 3f1944530a092c811c55720bd9322b8c150a535b (refs/remotes/git-svn)</p>
<p>&#8230;</p>
<p>r351 = e2af3c12e5ed174d23ffc5917f03a6136f8ebb6b (refs/remotes/git-svn)</p>
<p>Checked out HEAD:</p>
<p>http://svn.host.com/svn/code r351</p>
<p>At this point, the Subversion repository located at http://svn.host.com/svn/code has now been checked out in Git format. On individual files and directories, you can use the git log command as you would the svn log command in order to get history information on the item in question. With git, you will also see the Subversion commit that corresponds to the log entry, for instance:</p>
<p>commit 23f705cd87e1e9c6dd841ca88a14d808e0c4292a</p>
<p>Author: user@HOST.COM</p>
<p>Date:   Sat Mar 20 18:25:38 2010 +0000</p>
<p>correct logic on the buildrequires extractor, add stats on BuildRequires to showdbstats output</p>
<p>git-svn-id: http://svn.host.com/svn/code@350 7a5473d1-2304-0410-9229-96f37a904fa4</p>
<p>With the above, you can see that user@HOST.COM did the commit, see the log message, and the Subversion revision (r350).</p>
<p>To work with these files, make changes as normal. git diff works like svn diff does, to see the changes made. To commit changes, use git commit like you would use svn:</p>
<p>% git commit -m &#8220;some minor change&#8221; file</p>
<p>[master 2454be1] some minor change</p>
<p>1 files changed, 2 insertions(+), 0 deletions(-)</p>
<p><strong>To update your local copy from Subversion, instead of using svn update use git svn rebase. This will merge in any changes found in the Subversion repository.</strong></p>
<p>When committing files using git commit, you are committing your changes to the Git repository. None of these changes are pushed to the Subversion repository until you specifically tell Git to do so. This is done with the git svn dcommit command, which then takes each commit made to Git and pushes them to Subversion as individual commits, which will retain all of your history and log comments:</p>
<p>% git svn dcommit</p>
<p>Committing to http://svn.host.com/svn/code &#8230;</p>
<p>M      trunk/rqp</p>
<p>Committed r352</p>
<p>M      trunk/rqp</p>
<p>r352 = 0557314a580c4390ff646380baa3aa33d1f6a5cd (refs/remotes/git-svn)</p>
<p>No changes between current HEAD and refs/remotes/git-svn</p>
<p>Resetting to the latest refs/remotes/git-svn</p>
<p>Unstaged changes after reset:</p>
<p>M      trunk/rqp</p>
<p>M      trunk/rqp</p>
<p>Committed r353</p>
<p>M      trunk/rqp</p>
<p>r353 = 249e97283ad28126bf84ccaffb32873e12d15b7b (refs/remotes/git-svn)</p>
<p>No changes between current HEAD and refs/remotes/git-svn<br />
<strong><br />
Resetting to the latest refs/remotes/git-svn</strong></p>
<p>Now, if you were to look at the changed file(s) in Subversion (via another Subversion working copy or something like ViewVC), you will see the individual commits. Above, there were two changes made to the trunk/rqp file, each committed locally to Git. The “dcommit” command pushed those changes as individual commits to the Subversion repository. In this way you can do all local development with Git and when you have something you want to commit to the Subversion repository, you can push all of the relevant changes at once, retaining each separate commit.</p>
<p>Using the git-svn plugin makes it extremely easy to use Git locally with a remote Subversion repository. If you are in a project or organization that, for whatever reason, does not want to convert to Git, you can continue to work with that Subversion repository, without the restriction of using Subversion yourself.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/work-on-remote-subversion-repositories-locally-with-git/">Work on remote Subversion repositories locally with Git</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/work-on-remote-subversion-repositories-locally-with-git/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to configure and use SSH authentication system server CVS</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-configure-and-use-ssh-authentication-system-server-cvs/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-configure-and-use-ssh-authentication-system-server-cvs/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 20 Apr 2010 12:19:22 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[Configure CVS with SSH]]></category>
		<category><![CDATA[CVS with SSH Configuration]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Help]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Instructions]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Setup CVS through SSH]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Steps]]></category>
		<category><![CDATA[System server]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Use SSH with CVS]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/04/20/how-to-configure-and-use-ssh-authentication-system-server-cvs/</guid>

					<description><![CDATA[<p>How to configure and use SSH authentication system server CVS cvs (Concurrent Version System) is a very popular version control [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-configure-and-use-ssh-authentication-system-server-cvs/">How to configure and use SSH authentication system server CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4374" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/ssh-authentication-system-s.png" alt="ssh-with-cvs" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/ssh-authentication-system-s.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/ssh-authentication-system-s-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>How to configure and use SSH authentication system server CVS</strong></p>
<p>cvs (Concurrent Version System) is a very popular version control tool. Although its function as Perforce, Subversion and other powerful, but because of its easy configuration, simple to use and the introduction of longer, so in all a kind of software project widely used.</p>
<p>first is to install FreeBSD, and application security patches. This step is very simple, download a FreeBSD (the upcoming 5.2-RELEASE is a good choice, in this article was published, this version may have been able to download a) of the mini iso burning CD-ROM, then you can install the (choose “Minimum” installation). Note that, in order to be able to use ssh authentication, be sure to install the crypto. Configure the network for this machine, so after the restart just fine.</p>
<p>then install the necessary package. FreeBSD 4.x built-in perl, but in 5.x in, perl be deleted from the basic system. In order to better use, including ACL, commit mail, and a number feature, you must install perl.</p>
<p>I personally recommend using the ports in the 5.8.x version of perl. Before installing, first of all convinced that the system does not perl 5.6.x installed, the new system, they can safely execute the following command:</p>
<p>This will remove the existing any package. In general, the majority of FreeBSD users use cvsup to update the system, but the release of the CD, cvsup-without-gui is not included, while the ordinary cvsup package requires a series of X11 libraries. To avoid trouble, consider the following two different ways to complete the first code update:</p>
<div></div>
<p><strong>1, using the FreeBSD&#8217;s cvs to synchronize code: </strong></p>
<p>cvs-d: pserver: anoncvs@anoncvs.jp.FreeBSD.org: / home / ncvs login</p>
<p>enter “anoncvs”, Enter</p>
<p>cd / usr</p>
<p>cvs-R-d: pserver: anoncvs@anoncvs.jp.FreeBSD.org: / home / ncvs export-r RELENG_5_2 src ports</p>
<p>Note: If you are not using 5.2-RELEASE, please make appropriate amendments to RELENG_5_2 (for example ,4-STABLE is RELENG_4, – CURRENT is the HEAD, etc.)</p>
<p><strong>2, install cvsup-without-gui: </strong></p>
<p>pkg_add-r cvsup-without-gui</p>
<p>then use cvsup to synchronize code, space is limited, I will not repeat them</p>
<p>I recommend the first method, of course, the second method should be faster, and does not require manually compiling cvsup. Subsequently, the installation of Perl 5.8.x:</p>
<p>cd / usr / ports / lang / perl5.8 &amp; &amp; make all install clean &amp; &amp; rehash</p>
<p>Then we will face a very serious problem: ports inside use.perl script does not know the system had not installed perl, so the time to be wrong in the implementation – this time, just make a symbolic link to perl on it. Well, the implementation:</p>
<p>use.perl port</p>
<p>This script will help you complete use.perl modify configuration files (such as / etc / make.conf) and a series of work. Here is not the table, a little profile about OpenSSH (sshd) configuration, in general, add the following two lines:</p>
<p><strong>Protocol 2 </strong></p>
<p><strong>PasswordAuthentication no </strong></p>
<p>the benefits of doing so: ( 1) only allow ssh2 protocol log, which can provide better security (2) does not allow password login, which no doubt will increase security.</p>
<p><strong>1, create a cvs repository </strong></p>
<p>Well, pre-configuration is basically over. Do not forget to create a user for the cvs group, for example, ncvs, as well as a cvs repository for the management of users, such as the repoman (which of course is ncvs that group), and then create a directory to save the cvs repository, in this case , we put it into / home / ncvs in:</p>
<p>rm-rf / home / ncvs</p>
<p>mkdir-p / home / ncvs</p>
<p>chown-R repoman: ncvs / home / ncvs</p>
<p>chmod-R 775 / home / ncvs</p>
<p>next step is to initialize the repository, and simple to implement:</p>
<p>su-l repoman</p>
<p>cvs-d / home / ncvs init</p>
<p>on it.</p>
<p>present, all the FreeBSD version of cvs are included in the safety of the existence of a small vulnerability, although this flaw only in local use, but we recommend that you put it back on is to find / usr / src / contrib / cvs / src / expand_path.c in</p>
<p>return current_parsed_root-&gt; original;</p>
<p>line, turning it into a</p>
<p>return current_parsed_root-&gt; directory;</p>
<p>Of course, the next step is to re-make world kernel of. Need to note is that if you are using a 5-CURRENT, also need to modify some code for it to reach 5.2-RELEASE as performance (-CURRENT in a large number of debugging options turned on), specific methods will not go into here.</p>
<p><strong>2, the configuration commitmail and ACL </strong></p>
<p>then configure cvs commitmail and ACL. I personally think that commitmail the team software development a very important thing to cvs, it is especially important because cvs is not atomic submit function, but commitmail just enough to make up for this.</p>
<p>FreeBSD development team used a very good perl script to complete commitmail function, while the hook they use cvs to achieve a simple access control function (ACL). I use the cvs repository based on FreeBSD&#8217;s CVSROOT, and made a few changes.</p>
<p>use the CVSROOT cover your CVSROOT, and you also need to freebsd directory mailsend.c which compiled the results into the / usr / local / bin (the script assumes that the CVSROOT in this matter). In addition, the CVSROOT need some modifications before it is put into use (for example, machine name, etc.). These settings can be found in the cfg_local.pm inside:</p>
<p>$ MAILADDRS = &#8216;cvs- all@example.org &#8216;;</p>
<p>commitmail this is the place to be sent to.</p>
<p>$ MAIL_BRANCH_HDR = “X-Phantasm-CVS-Branch”;</p>
<p>this is to be added to the commitmail head of information, if you use the mailing list, then it can help mailing list automatically sorted.</p>
<p>$ MAILBANNER = “The Phantasm Studio repository”;</p>
<p>this soon in commitmail said that they commit to which a repository.</p>
<p>if ($ hostname = ~ / ^ cvs \. Example \. Org $ / i)</p>
<p>commit to this is to determine the host name</p>
<p>$ CVSWEB_URL = “http://cvsweb.example.org/cgi-bin/cvsweb.cgi”;</p>
<p>This is cvsweb services at</p>
<p>a brief CVSROOT in the other documents</p>
<p>avail: the file used to control access to user group.</p>
<p>access: This file is used to control who can perform cvs operations.</p>
<p>exclude: This file is used to control those files do not need to check the cvs tag</p>
<p>options: this file used to control the commencement of cvs tag, for example, can define $ Phantasm $, etc.</p>
<p><strong>3, configuration of users and restrict ssh permissions </strong></p>
<p>ssh authentication using a more vexing question is, ssh means that users have a system account, and that they be able to log in.. If configured properly, they can get a shell, it is natural to be a potential security risk.</p>
<p>must therefore be very careful in handling the ssh cvs authentication issue. The underlying principle is: any action against the user, unless we allow them to do so.</p>
<p>create a user in accordance with the following rules:</p>
<p>user&#8217;s” primary “group is ncvs (This will not only restrict the user&#8217;s permission, so we can more easily control the other users in the cvs repository which can not be free to commit)</p>
<p>users do not use password authentication, which will ease because they do not properly set up ftp and other safety hazards caused by</p>
<p>still give the user a shell, the “shell” can be a perl script, it only allow the implementation of the beginning of the command cvs</p>
<p>then allow users to use openssh&#8217;s ssh-keygen to generate your own key pair. OpenSSH in most * BSD and Linux distributions can be found in, if the user uses the Windows Desktop, you need to install cygwin (in particular, the installation of net in OpenSSH), of course, the implementation of the command is the same:</p>
<p>ssh-keygen-t dsa-b 2048</p>
<p>for the paranoid security enthusiasts, can consider later in 2048 will be replaced by-b 4096. Of course, under the barrel theory, if you are a paranoid, then obviously you should be forced to use all the partners are also at least as long as your key:)</p>
<p>, the administrator should be user (committer) the key into the server, the user corresponding to the authorized_keys file in the folder inside. For example, one of my public key as follows:</p>
<p>ssh-dss AAAAB3NzaC1kc3MAAAEBAL +1 jinOw +86 RcTEaSM5/Hz4Lr9tIS0IQsX8ebo</p>
<p>TwLzWnqpOHRh2KBCGn/e0xGCIAai7PGz7c + SZCvrLiRvG9mCsMMMue8ZIL + QF4OAmMd</p>
<p>Cz8Qoyg0cc4YXImOd + UEpdOX29PC4aMAz28v/GO2yf58/Qa49Clfq1kHa/8q3IAgs9o</p>
<p>W95 / ArG + IWFOsN1Tv9nh4XJb5AQjpa5uMlB5SEmvKGTXQ2oYiRVIxL8vzHL6MtO/8×1</p>
<p>j8 + RioSH6FCpEXS7UJbYxE7vF3m5Fa5o6g2dIZewphsleOeHkvYJ442Hqvsly3p4 +4 N</p>
<p>dvim4bY2HMDha5r5zeTV8tTlOz4wQVgKyWoEAAAAVAINGzX7uU0vR8l63qhBhUeWGZt</p>
<p>C9AAABADWiO +9 bvV7DApsn08LR1eoEnMjJFQgEfGlbV + EvZHkO0bkHZAdRIKtVmgNUw</p>
<p>G6uufykkt2Tb + q5SbVNZkzeaFVv4ZMtnjSvEPIZrEXcQFFguGk1it5v5EYcmq4G8 + j1</p>
<p>BFTVHef4b1wMTSt11WtEz0LUYncuZ6LA48/WGTuZiSm8JkchgVm8HhR9NqjdeFJH8sO</p>
<p>RUhUBoxyWjo/hv7zFg7HqoJGzeNfrEhFg36psR2RDaRvSP0vN1W2q4j5OZy3gB6ZyVt</p>
<p>nsEPl1HELhlaCFifmdz1LVxDx + FyPy6wMsPQLTmB1g6N1J6PWy3qCTJ0NyQgarSt3 / A</p>
<p>TQ0InF1BOdJn8QAAAEAPb1OgswuMHdEsHk2ETZVmOKOkI9Rjf72vjZ3xG45iEbCH/7p</p>
<p>aTP8OQmJMW9FD4MHjdmtktPVYXDIa9Hj/IM44zhfMHEdKs9LlFUK5dBgNUps + yPj2Ns</p>
<p>Mr2rl771ODR0mB52FwrXm1FCmNTM7WQpFOEy/QhtZRpHK +7 / YZp7PBggt17Fw7rbjP2</p>
<p>zhWnZluoSKLgvfkhxhJuOMm/ElNJx2c + XHdxPqI3eR5UxzLNjDUNh59I8 + h + E69bFB3</p>
<p>b2uhKqziziHOQcqoH5r0Kud / DBBE79lU3mRUF8FQNygCRh/V3yFzed40rc0nF0PQpNZ</p>
<p>6zodDTJByrm6vX5wr2lI4RgA9w == bitripper@grimreaper.delphij.net</p>
<p>Description: public key is not allowed off-line, here is convenient for typesetting. We have just opened to the user shell, which is still potential pitfalls, so we tighten security in this regard, the public key by adding the following text before the project:</p>
<p>command = “/ usr / bin / cvs – allow-root = / home / ncvs server”</p>
<p>So, the whole line should look like this:</p>
<p>command =” / usr / bin / cvs – allow-root = / home / ncvs server “ssh-dss AAAAB</p>
<p>…… …………………..</p>
<p>X5wr2lI4RgA9w == bitripper@grimreaper.delphij.net</p>
<p>ssh this command means that up on the implementation of / usr / bin / cvs – allow-root = / home / ncvs server this command, and can only perform this command. Thus, unless there are loopholes in the cvs itself, otherwise, can not really cut out through ssh shell. – Allow-root limits the ability to use the repository, so users can not easily specify the other repository, thus trying to undermine the security will become more difficult. If you need multiple repository, you can specify the number of allow-root parameter.</p>
<p>be noted is that if users have multiple public key, you need to specify each public key before the command.</p>
<p><strong>4, configuration cvsweb </strong></p>
<p>configuration cvsweb is quite simple. First install the apache (I tried 1.3.x and 2.0.x), configure the ready, from the port which install cvsweb on it:</p>
<p>cd / usr / ports / devel / cvsweb &amp; &amp; make all installl clean</p>
<p>and then to modify it configuration file:</p>
<p>cd / usr / local / etc / cvsweb</p>
<p>vi cvsweb.conf</p>
<p>find</p>
<p>;</p>
<p>@ CVSrepositories = (</p>
<p>line, follow the example of an increase in following their own repository, For example:</p>
<p>&#8216;ncvs&#8217; =&gt; [&#8216; New CVS Repository &#8216;,&#8217; / home / ncvs&#8217;],</p>
<p>write the number of how many, of course, @ CVSrepositories the first to directly access cvsweb.cgi when the repository.</p>
<p>in FreeBSD 5.1-CURRENT development process carried out by some of the changes caused by the ports in the cvsweb not normally call the cvs and rcs tools, which will cause it to not work properly. To solve this problem, can be found from the following web site the latest version of cvsweb:</p>
<p>http://www.freebsd.org/projects/cvsweb.html</p>
<p>the author of this writing, the latest cvsweb version is 2.9.1 beta. Before the installation, need to install the other two port:</p>
<p>cd / usr/ports/devel/p5-IPC-Run &amp; &amp; make all install clean</p>
<p>cd / usr/ports/net/p5-URI &amp; &amp; make all install clean</p>
<p>then downloaded tbz file unpack, copy to the appropriate location (cgi-bin and related images directory) can be used.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-configure-and-use-ssh-authentication-system-server-cvs/">How to configure and use SSH authentication system server CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-configure-and-use-ssh-authentication-system-server-cvs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Upgrading Continuum &#8211; Continuum Upgradation Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/upgrading-continuum/</link>
					<comments>https://www.scmgalaxy.com/tutorials/upgrading-continuum/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 17 Mar 2010 07:14:50 +0000</pubDate>
				<category><![CDATA[Apache Continuum]]></category>
		<category><![CDATA[Continuum]]></category>
		<category><![CDATA[Continuum Upgradation]]></category>
		<category><![CDATA[Continuum Upgradation Guide]]></category>
		<category><![CDATA[Continuum Upgradation Tutorial]]></category>
		<category><![CDATA[Continuum Upgrade]]></category>
		<category><![CDATA[Continuum upgrade help]]></category>
		<category><![CDATA[Continuum Upgrade Reference]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to upgrade new verrsion of Continuum]]></category>
		<category><![CDATA[Instruction for Continuum Upgrade]]></category>
		<category><![CDATA[Procedure]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[Upgrade Continuum from 1.2.x to 1.3.3]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/17/upgrading-continuum/</guid>

					<description><![CDATA[<p>This document will help you upgrade Continuum from 1.2.x to 1.3.3 and above. When upgrading Continuum, it could have some [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/upgrading-continuum/">Upgrading Continuum &#8211; Continuum Upgradation Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4195" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/continuum.png" alt="continuum-upgrade" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/continuum.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/continuum-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>This document will help you upgrade Continuum from 1.2.x to 1.3.3 and above.</p>
<p>When upgrading Continuum, it could have some database model changes. Usually these changes will be migrated for you, but in some cases you may need to use a backup from the previous version and restore that data into the new version. The Data Management tool exports data from the old database model and imports the data into the new database model.</p>
<p>If you had used the <tt>APP_BASE</tt> environment variable in Continuum 1.2 to differentiate your configuration from the installation, you should rename it to <tt>CONTINUUM_BASE</tt> in Continuum 1.3.</p>
<p><b>Note:</b> The Jetty version in Continuum 1.3.4 and above has been upgraded to 6.1.19. When upgrading to Continuum 1.3.4 or higher, there is a need to update the library contents listed in <tt>$CONTINUUM_BASE/conf/wrapper.conf</tt> with the ones included in the new distribution especially if the <tt>$CONTINUUM_BASE</tt> directory is separate from the installation.</p>
<h3>Using Backup and Restore to upgrade</h3>
<p>There are 2 databases that need to be considered: one for the builds and one for the users.</p>
<p>There were no changes in the users database from 1.2.x to 1.3.2, so you can simply point Continuum 1.3.2 at your existing user database.</p>
<p>The builds database has had model changes, and will need to be exported and imported.</p>
<p>First, download the Data Management tools you will need. The tool is a standalone JAR that you can download from the central repo.</p>
<p>You will need to download two versions of the tool, one for the export out of the old version and one for the import into the new version:</p>
<p><b>Note:</b> The 1.2, 1.2.2 and 1.2.3 released versions of this tool have a bug. To export databases from 1.2.2 or 1.2.3, you will need to use version 1.2.3.1 of the tool. To export databases from 1.2, you may use the 1.1 version of the tool.</p>
<ul>
<li><a href="http://repo1.maven.org/maven2/org/apache/continuum/data-management-cli/1.3.2/data-management-cli-1.3.2-app.jar">http://repo1.maven.org/maven2/org/apache/continuum/data-management-cli/1.3.2/data-management-cli-1.3.2-app.jar</a></li>
<li><a href="http://repo1.maven.org/maven2/org/apache/continuum/data-management-cli/1.2.3.1/data-management-cli-1.2.3.1-app.jar">http://repo1.maven.org/maven2/org/apache/continuum/data-management-cli/1.2.3.1/data-management-cli-1.2.3.1-app.jar</a></li>
<li><a href="http://repo1.maven.org/maven2/org/apache/maven/continuum/data-management-cli/1.1/data-management-cli-1.1-app.jar">http://repo1.maven.org/maven2/org/apache/maven/continuum/data-management-cli/1.1/data-management-cli-1.1-app.jar</a></li>
</ul>
<p>Next, follow these steps to export data from the old version</p>
<ul>
<li>Stop the old version of Continuum</li>
<li>Execute this command to create the builds.xml export file</li>
</ul>
<pre>java -Xmx512m -jar data-management-cli-1.2.x-app.jar -buildsJdbcUrl jdbc:derby:${old.continuum.home}/data/databases/continuum -mode EXPORT -directory backups</pre>
<p>Then, follow these steps to import the data to the new version</p>
<ul>
<li>Start the new version of Continuum to create the new data model, but do not configure it.</li>
<li>Stop Continuum</li>
<li>Execute this command to import the builds data from the xml file you created earlier:</li>
</ul>
<pre>java -Xmx512m -jar data-management-cli-1.3.2-app.jar -buildsJdbcUrl jdbc:derby:${new.continuum.home}/data/databases/continuum -mode IMPORT -directory backups -strict</pre>
<p><b>Note:</b> Remove <tt>-strict</tt> when importing data from 1.3.1 to 1.3.x to ignore unrecognized tags due to model changes.</p>
<p>Finally, be aware that sometimes the NEXT_VAL values in the SEQUENCE_TABLE need to be adjusted.</p>
<ul>
<li>Before starting Continuum for the first time after the import, connect to the db with a client like <a href="http://squirrel-sql.sourceforge.net/">Squirrel SQL</a> and check the values in the <b>NEXT_VAL</b> column of the SEQUENCE_TABLE.</li>
<li>Values must be greater than the max id value in each table.</li>
<li>For example, the next value of &#8220;org.apache.maven.continuum.model.Project&#8221; must be greater than the greatest id in Project table.</li>
<li>Here are some example SQL statements. You may need to add or remove lines depending on the contents of your database.</li>
</ul>
<pre>UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(systemconfiguration_id)+1 from SYSTEMCONFIGURATION) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.system.SystemConfiguration';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from BUILDQUEUE) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.BuildQueue';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from SCHEDULE) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.Schedule';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from BUILDDEFINITION) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.BuildDefinition';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from LOCALREPOSITORY) WHERE SEQUENCE_NAME='org.apache.continuum.model.repository.LocalRepository';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from PROJECTGROUP) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.ProjectGroup';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(scmresult_id)+1 from SCMRESULT) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.scm.ScmResult';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(projectdependency_id)+1 from PROJECTDEPENDENCY) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.ProjectDependency';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from BUILDDEFINITIONTEMPLATE) WHERE SEQUENCE_NAME='org.apache.maven.continuum.model.project.BuildDefinitionTemplate';
UPDATE SEQUENCE_TABLE set NEXT_VAL = (select max(id)+1 from ABSTRACTPURGECONFIGURATION) WHERE SEQUENCE_NAME='org.apache.continuum.model.repository.AbstractPurgeConfiguration';</pre>
<p>Now you can start your new version of Continuum.</p>
<p>Reference: http://continuum.apache.org/docs/1.3.6/installation/upgrade.html</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/upgrading-continuum/">Upgrading Continuum &#8211; Continuum Upgradation Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/upgrading-continuum/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How to Run/Deploy Java EE applications on Amazon EC2?</title>
		<link>https://www.scmgalaxy.com/tutorials/running-java-ee-applications-on-amazon-ec2/</link>
					<comments>https://www.scmgalaxy.com/tutorials/running-java-ee-applications-on-amazon-ec2/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 10 Mar 2010 06:01:03 +0000</pubDate>
				<category><![CDATA[Amazon (Elastic Cloud)]]></category>
		<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Deploy]]></category>
		<category><![CDATA[Deploy Java EE app on Amazon Ec2]]></category>
		<category><![CDATA[ec2deploy]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to Deploe Java EE app on Ec2]]></category>
		<category><![CDATA[How to Run Java EE app on Ec2]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Java EE app on Ec2]]></category>
		<category><![CDATA[Java EE application on Amazon Ec2]]></category>
		<category><![CDATA[Push]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Run Java EE applications on Amazon EC2]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/10/running-java-ee-applications-on-amazon-ec2/</guid>

					<description><![CDATA[<p>Running Java EE applications on Amazon EC2: deploying to 20 machines with no money down Computer hardware has traditionally been [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/running-java-ee-applications-on-amazon-ec2/">How to Run/Deploy Java EE applications on Amazon EC2?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4109 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/java-ee-applications-on-ama.png" alt="running-java-ee-applications-on-amazon-ec2" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/java-ee-applications-on-ama.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/java-ee-applications-on-ama-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Running Java EE applications on Amazon EC2: deploying to 20 machines with no money down</h1>
<p>Computer hardware has traditionally been a scarce, expensive resource. In the early days of computing developers had to share a single machine. Today each developer usually has their own machine but it’s rare for a developer to have more than one. This means that running performance tests often involves scavenging for machines.  Likewise, replicating even just part of a production environment is a major undertaking. With <a href="http://www.amazon.com/gp/browse.html?node=201590011" target="_blank" rel="noopener">Amazon’s Elastic Compute Cloud (EC2)</a>, however, things are very different. A set of Linux servers is now just a web service call away. Depending on the <a href="http://www.amazon.com/gp/browse.html?node=370375011" target="_blank" rel="noopener">type of the servers</a> you simply pay 10-80 cents per server per hour for up to 20 servers! No more upfront costs or waiting for machines to be purchased and configured.</p>
<p>To make it easier for enterprise Java developers to use EC2, I have created EC2Deploy.  It’s a Groovy framework for deploying an enterprise Java application on a set of Amazon EC2 servers. EC2Deploy provides a simple, easy to use API for launching a set of EC2 instances; configuring MySQL, Apache and one or more Tomcat servers; and deploying one or more web applications. In addition, it can also run JMeter and collect performance metrics.</p>
<p>Here is an example script that launches some EC2 instances; configures MySQL with one slave, Tomcat and Apache; deploys a single web application on the Tomcat server; and runs a JMeter test with first one thread and then two.</p>
<pre>class ClusterTest extends GroovyTestCase {</pre>
<pre>  void testSomething() {</pre>
<pre>    AWSProperties awsProperties = new</pre>
<pre>        AWSProperties("/…/aws.properties")</pre>
<pre></pre>
<pre>    def ec2 = new EC2(awsProperties)</pre>
<pre></pre>
<pre>    def explodedWar = '…/projecttrack/webapp/target/ptrack'</pre>
<pre></pre>
<pre>    ClusterSpec clusterSpec =</pre>
<pre>       new ClusterSpec()</pre>
<pre>            .schema("ptrack", ["ptrack": "ptrack"],</pre>
<pre>                    ["src/test/resources/testdml1.sql",</pre>
<pre>                     "src/test/resources/testdml2.sql"])</pre>
<pre>            .slaves(1)</pre>
<pre>            .tomcats(1)</pre>
<pre>            .webApp(explodedWar, "ptrack")</pre>
<pre>            .catalinaOptsBuilder({builder, databasePrivateDnsName -&gt;</pre>
<pre>                 builder.arg("-Xmx500m")</pre>
<pre>                 builder.prop("com.sun.management.jmxremote")</pre>
<pre>                 builder.prop("com.sun.management.jmxremote.port", 8091)</pre>
<pre>                 builder.prop("com.sun.management.jmxremote.authenticate",</pre>
<pre>                                     false)</pre>
<pre>                 builder.prop("com.sun.management.jmxremote.ssl", false)</pre>
<pre>                 builder.prop("ptrack.application.environment", "ec2")</pre>
<pre>                 builder.prop("log4j.configuration",</pre>
<pre>                               "log4j-minimal.properties")</pre>
<pre>                 builder.prop("jdbc.db.server", databasePrivateDnsName)})</pre>
<pre></pre>
<pre>    SimpleCluster cluster = new SimpleCluster(ec2, clusterSpec)</pre>
<pre></pre>
<pre>    cluster.loadTest("…/projecttrack/functionalTests/jmeter/SimpleTest.jmx",</pre>
<pre>        [1, 2])</pre>
<pre></pre>
<pre>    cluster.stop()</pre>
<pre>  }</pre>
<pre>}</pre>
<p>Let’s look at each of the pieces.</p>
<p>First, we need to configure the framework as follows:</p>
<pre>    AWSProperties awsProperties = new</pre>
<pre>        AWSProperties("/…/aws.properties")</pre>
<pre>    def ec2 = new EC2(awsProperties)</pre>
<p>The aws.properties file contains various properties including the Amazon WS security credentials and the EC2 AMI (i.e. OS image) to launch. All servers use my EC2 appliance AMI that has Java, MySQL, Apache, Tomcat, Jmeter and some other useful tools pre-installed.</p>
<p>Next we need to configure the servers:</p>
<pre>     ClusterSpec clusterSpec =</pre>
<pre>        new ClusterSpec()</pre>
<pre>             .schema("ptrack", ["ptrack": "ptrack"],</pre>
<pre>                    ["src/test/resources/testdml1.sql",</pre>
<pre>                     "src/test/resources/testdml2.sql"])</pre>
<pre>             .slaves(1)</pre>
<pre>             .tomcats(1)</pre>
<pre>             .webApp(explodedWar, "ptrack")</pre>
<pre>             .catalinaOptsBuilder({builder, databasePrivateDnsName -&gt;</pre>
<pre>                 builder.arg("-Xmx500m")</pre>
<pre>                 builder.prop("com.sun.management.jmxremote")</pre>
<pre>                 builder.prop("com.sun.management.jmxremote.port", 8091)</pre>
<pre>                 builder.prop("com.sun.management.jmxremote.authenticate",</pre>
<pre>                                     false)</pre>
<pre>                 builder.prop("com.sun.management.jmxremote.ssl", false)</pre>
<pre>                 builder.prop("ptrack.application.environment", "ec2")</pre>
<pre>                 builder.prop("log4j.configuration",</pre>
<pre>                               "log4j-minimal.properties")</pre>
<pre>                 builder.prop("jdbc.db.server", databasePrivateDnsName)})</pre>
<pre></pre>
<pre>     SimpleCluster cluster = new SimpleCluster(ec2, clusterSpec)</pre>
<p>This code first creates a ClusterSpec, which defines the configuration of the machines and the applications:</p>
<ul>
<li>schema() – specifies the name of the database schema to create; names of the users and their passwords; the DML scripts to execute once the database has been create</li>
<li>slaves() – specifies how many MySql slaves to create</li>
<li>tomcats() &#8211; specifies how many Tomcats to run.</li>
<li>webApp() &#8211; configures a web application. This method takes two parameters: the path to the exploded WAR directory (conveniently created by Maven) and the context to deploy the web application under.</li>
<li>catalinaOptsBuilder() – supplies a closure that takes a builder and the DNS name of the MySQL server as arguments and returns the CATALINA_OPTS used to launch Tomcat. It’s primary purpose is to configure the web application(s) to use the correct database server</li>
</ul>
<p>It then creates a cluster with that specification.</p>
<p>We then start the cluster:</p>
<pre>    cluster.start()</pre>
<p>At this point EC2Deploy will:</p>
<ol>
<li>Launch the EC2 instances running my appliance AMI.</li>
<li>Initialize the MySql master database</li>
<li>Create the MySql slave</li>
<li>Create the database schema and the users</li>
<li>Run any DML scripts (these are cached on S3 in a bucket called “tmp&#8211;dml” for the reasons described next)</li>
<li>Upload the web applications to <a href="http://www.amazon.com/gp/browse.html?node=16427261" target="_blank" rel="noopener">Amazon S3 (Simple Storage Service)</a> where they are cached in order to avoid time consuming uploads (over slow DSL connections, for example). EC2Deploy only uploads new and changed files, which means that the bulky 3<sup>rd</sup> party libraries are only uploaded once. Each web application is stored in an S3 bucket called -tmp-war. If this bucket does not exist you will see some warning messages and the bucket will be created.</li>
<li>Deploy the web applications on each of the Tomcat servers</li>
<li>Configure Apache to load balance across the Tomcat servers</li>
</ol>
<p>Once the cluster is started we can run a JMeter load test:</p>
<pre>    cluster.loadTest("…/projecttrack/functionalTests/jmeter/SimpleTest.jmx", [1, 2])</pre>
<p>The first argument specifies the test to run and the second argument is a list of JMeter thread counts. In this example, EC2deploy first runs the load test with one thread and then two threads. For each test run, it generates a report describing CPU utilization for each machine, average response time and throughput.</p>
<p>Finally, we stop the EC2 instances:</p>
<p>cluster.stop()</p>
<p>As you can see, EC2Deploy makes it pretty easy to deploy and test your enterprise Java application. I’ve used it to clone a production environment and run load tests. NOTE 1/28/08: The source code EC2Deploy along with a very cool Maven plugin is now <a href="http://www.chris-richardson.blog-city.com/ec2deploy_and_the_cloud_tools_maven_plugin_are_now_available.htm">available</a> !</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/running-java-ee-applications-on-amazon-ec2/">How to Run/Deploy Java EE applications on Amazon EC2?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/running-java-ee-applications-on-amazon-ec2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Running MSBuild 4.0 and MSBuild 3.5 on Continuous Integration</title>
		<link>https://www.scmgalaxy.com/tutorials/running-msbuild-40-and-msbuild-35-on-continuous-integration/</link>
					<comments>https://www.scmgalaxy.com/tutorials/running-msbuild-40-and-msbuild-35-on-continuous-integration/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Mar 2010 13:37:44 +0000</pubDate>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Msbuild]]></category>
		<category><![CDATA[CI server]]></category>
		<category><![CDATA[Continuous]]></category>
		<category><![CDATA[Continuous Integration server]]></category>
		<category><![CDATA[Continuous Integration using MSBuild]]></category>
		<category><![CDATA[Continuous Integration with MSBuild]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Help]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[MSBuild 3.5]]></category>
		<category><![CDATA[MSBuild 4.0]]></category>
		<category><![CDATA[Run]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/09/running-msbuild-40-and-msbuild-35-on-continuous-integration/</guid>

					<description><![CDATA[<p>With Visual Studio 2010 RC released recently, we jumped on the release and began to code with VS2010.  One issue [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/running-msbuild-40-and-msbuild-35-on-continuous-integration/">Running MSBuild 4.0 and MSBuild 3.5 on Continuous Integration</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4127 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/msbuild-40-and-msbuild-35-o.png" alt="msbuild-40-and-msbuild-35" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/msbuild-40-and-msbuild-35-o.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/msbuild-40-and-msbuild-35-o-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>With Visual Studio 2010 RC released recently, we jumped on the release and began to code with VS2010.  One issue that popped up was that now all builds were targeting MSBuild 4.0.</p>
<p>That doesn’t seem to be a big problem until our CruiseControl CI server kicked in, downloaded our updated code and failed building the upgraded projects.</p>
<p>Fortunately there is a very quick solution to this little problem.  There are a couple of requirements.</p>
<p>1. You need to have VS2010 RC installed somewhere<br />
2. You need to download the .Net Framework 4.0 (I recommend the full version and not just the Client Profile, it ensures you don’t miss anything)</p>
<p><b>To fix, do the following:</b></p>
<p>1. download and install the .Net Framework 4.0 on the CI server (then restart the server)<br />
2. on the computer where VS2010 RC is installed go to the following path:<br />
%programfiles%\MSBuild\Microsoft\VisualStudio<br />
3. copy the v10.0 folder located in that directory into the CI server at the same path (or wherever our MSbuild path is on the CI server)<br />
4. Once that is done, edit the ccnet.config file at the tag and change it to the new .Net 4.0 Framework installed (you should only need to change the section “\v3.5\” to “\v4.0.xxxxx\”</p>
<p>Hope this helps</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/running-msbuild-40-and-msbuild-35-on-continuous-integration/">Running MSBuild 4.0 and MSBuild 3.5 on Continuous Integration</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/running-msbuild-40-and-msbuild-35-on-continuous-integration/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Issues Compiling VS2010 solutions (with web projects) from Nant &#124; MSB4064 error</title>
		<link>https://www.scmgalaxy.com/tutorials/issues-compiling-vs2010-solutions-with-web-projects-from-nant/</link>
					<comments>https://www.scmgalaxy.com/tutorials/issues-compiling-vs2010-solutions-with-web-projects-from-nant/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Mar 2010 13:31:46 +0000</pubDate>
				<category><![CDATA[Nant]]></category>
		<category><![CDATA[command line compilation error VS2010]]></category>
		<category><![CDATA[Compilation error in VS2010]]></category>
		<category><![CDATA[Compile]]></category>
		<category><![CDATA[Compile error Visual Studio 2010]]></category>
		<category><![CDATA[Compiling issue in VS2010]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[MSB4064 error]]></category>
		<category><![CDATA[MSB4064 error Solution]]></category>
		<category><![CDATA[MSB4064 issue]]></category>
		<category><![CDATA[NAnt]]></category>
		<category><![CDATA[nant.exe]]></category>
		<category><![CDATA[Project Upgrade to Visual Studio 2010]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[VisualStudio 2010]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[web projects]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/09/issues-compiling-vs2010-solutions-with-web-projects-from-nant/</guid>

					<description><![CDATA[<p>Recently I upgraded a project of mine (the Dimecasts code base) to use VisualStudio 2010.  In the process everything worked [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/issues-compiling-vs2010-solutions-with-web-projects-from-nant/">Issues Compiling VS2010 solutions (with web projects) from Nant | MSB4064 error</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone wp-image-4131 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/vs2010-solutions-with-web-p.png" alt="vs2010-compiling-issues" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/vs2010-solutions-with-web-p.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/vs2010-solutions-with-web-p-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Recently I upgraded a project of mine (the Dimecasts code base) to use VisualStudio 2010.  In the process everything worked just fine from the IDE, but when I tried to compile it from the command line I would get the following errors:</p>
<p>Error MSB4064: The &#8220;Retries&#8221; parameter is not supported by the &#8220;Copy&#8221; task.<br />
Error MSB4063: THe &#8220;Copy&#8221; task could be initialized with its input parameter.</p>
<p>After a bit a googling I came across a post which (and of course i cannot find it now) said that if you open up your .proj files and change the line that pointed to the v10.0 build of web applications and reset it back to 9.0 everything would compile.  And this did work&#8230; BUT when you try to open that project up again in VS 2010 it will simply revert your changes&#8230; this is not a working solution.</p>
<p>Next I decided to switch my target framework in Nant from 3.5 to 4.0, but of course my nant.exe.config file does not support 4.0 yet.  So after a bit more googling I found this post that gives details on how to add the missing values to the config file.</p>
<p>When I added the config information to my Nant.exe.config file things were better, but still not great.  Now I was getting an error that said:</p>
<p>The &#8220;vendor&#8221; attribute does not exist, or has no value.</p>
<p>To resolve this I added the following under the node in my config<br />
vendor=&#8221;Microsoft&#8221;</p>
<p>After this I got another error&#8230;. This time it said that .Net Framework 4.0 was not installed.  But I know this is not valid.  After looking at the information for a few more seconds I realized the issue.  The example config from the post above was build on an older version of the 4.0 framework (.20506) and I have .30128.</p>
<p>I changed all values in the nant.exe.config value that was v4.0.20506 to be v4.0.30128 and NOW I am able to compile.</p>
<p>So long story short, if you are getting the MSB4064 error you need to do the following:</p>
<p>1. Point nant to use the 4.0 framework tools<br />
2. Follow this post  and copy the framework section to your Nant.exe.config file<br />
3. Add the missing &#8216;vendor&#8217; attribute to the new framework section<br />
4. Update the version in the new framework section to match the version you have on disk (check C:\Windows\Microsoft.NET\Framework for versions)<br />
5. Compile again</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/issues-compiling-vs2010-solutions-with-web-projects-from-nant/">Issues Compiling VS2010 solutions (with web projects) from Nant | MSB4064 error</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/issues-compiling-vs2010-solutions-with-web-projects-from-nant/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Why and how to use Jetty in mission-critical production</title>
		<link>https://www.scmgalaxy.com/tutorials/why-and-how-to-use-jetty-in-mission-critical-production/</link>
					<comments>https://www.scmgalaxy.com/tutorials/why-and-how-to-use-jetty-in-mission-critical-production/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Mar 2010 13:19:46 +0000</pubDate>
				<category><![CDATA[App / Web Servers]]></category>
		<category><![CDATA[Application server]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[how to use Jetty]]></category>
		<category><![CDATA[How to use Jetty in Test environment]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[Jetty advantages in Test environment]]></category>
		<category><![CDATA[mission-critical]]></category>
		<category><![CDATA[production]]></category>
		<category><![CDATA[Test environment]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Use]]></category>
		<category><![CDATA[Why]]></category>
		<category><![CDATA[Why Jetty]]></category>
		<category><![CDATA[Why use Jetty]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/09/why-and-how-to-use-jetty-in-mission-critical-production/</guid>

					<description><![CDATA[<p>This article is a summary of a seminar I had on the topic. If it seems like it’s a continuation [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/why-and-how-to-use-jetty-in-mission-critical-production/">Why and how to use Jetty in mission-critical production</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4137 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/how-to-use-jetty.png" alt="how-to-use-jetty" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/how-to-use-jetty.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/how-to-use-jetty-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>This article is a summary of a seminar I had on the topic. If it seems like it’s a continuation of an existing discussion that’s because, to some extent, it is. If you haven’t been discussing exchanging your app server, this article probably isn’t very interesting to you.</p>
<p>By putting the application server inside my application instead of the other way around, I was able to leap tall buildings in a single bound.</p>
<p>The embedded application server</p>
<p>This is how I deploy <a href="http://svn.brodwall.com/demo/embedded-container/">my sample application</a> to a new test environment (or to production):</p>
<ol>
<li>mvn install</li>
<li>scp -server/target/-1.0.onejar.jar appuser@appserver:/home/appuser/test-env1/</li>
<li>ssh appuser@appserver “cd /home/appuser/test-env1/ &amp;&amp; java -jar -1.0.onejar.jar&amp;”</li>
</ol>
<p>This require no prior installed software on the appserver (with the exception of the JVM). It requires no prior configuration. Rolling back is a matter of replacing one jar-file with another. Clustering is a matter of deploying the same application several times.</p>
<p>In order to make this work in a real environment, there are a many details you as a developer need to take care of. As a matter of fact, you will have to take responsibility for your operational environment. The good news is that creating a good operational environment is not more time-consuming than trying to cope with the feed and care of a big-a Application Server.</p>
<p>In this scheme every application comes with its own application server in the form of jetty’s jar-files embedded in the deployed jar-file.</p>
<p>The advantages</p>
<p>Why would you want to do something like this?</p>
<ul>
<li><strong>Independent application</strong>: If you’ve ever been told that you can’t use Java 1.5 because that would require an upgrade of the application server. And if we upgrade the application server, that could affect someone else adversely. So we need to start a huge undertaking to find out who could possibly be affected.</li>
<li><strong>Developer managed libraries</strong>: Similar problems can occur with libraries. Especially those that come with the application server. For example: Oracle OC4J helpfully places a preview version of JPA 1.0 first in your classpath. If you want to use Hibernate with JPA 1.0-FINAL, it will mostly work. Until you try to use a annotation that was changed after the preview version (@Discriminator, for example). The general rule is: <em>If an API comes with your app server, you’re better served by staying away from it.</em> A rather bizarre state of affairs.</li>
<li><strong>Deployment, configuration and upgrades</strong>: Each version of the application, including all its dependencies is packaged into a single jar-file that can be deployed on several application server, or several times on the same application server (with different ports). The configuration is read from a properties-file in the current working directory. On the minus side, there’s no fancy web UI where you can step through a wizard to deploy the application or change the configuration. On the plus side, there is no fancy web UI …. If you’ve used one such web UI, you know what I mean.</li>
<li><strong>Continuous deployment</strong>: As your maven-repository will contain stand alone applications, creating a continuous deployment scheme is very easy. In my previous environment, a cron job running wget periodically was all that was needed to connect the dots. Having each server environment PULL the latest version gives a bit more flexibility if you want many test environments. (However, if you’re doing automated PUSH deployment, it’s probably just as practical for you).</li>
<li><strong>Same code in test and production</strong>: The fact that you can <a href="http://svn.brodwall.com/demo/embedded-container/embedded-container-web/src/test/java/no/steria/embeddedcontainer/web/HelloWebTest.java">start Jetty inside a plain old JUnit test</a> means that it is ideal for taking your automated tests one step further. However, if you test with Jetty and deploy on a different Application Server, the difference will occasionally trip you. It’s not a big deal. You have to test in the server environment anyway. But why not eliminate the extra source of pain if you can?</li>
<li><strong>Licenses</strong>: Sure, you can afford to pay a few million $ for an application server. You probably don’t have any better use for that money, anyway, right? However, if you have to pay licenses for each test-server in addition, it will probably mean that you will test less. We don’t want that.</li>
<li><strong>Operations</strong>: In my experience, operations people don’t like to mess around with the internals of an Application Server. An executable jar file plus a script that can be run with [start|status|stop] may be a much better match.</li>
</ul>
<p>The missing bits</p>
<p>Taking control of the application server takes away a lot of complex technology. This simplifies and makes a lot of stuff cheaper. It also puts you back in control of the environment. However, it forces you to think about some things that might’ve been solved for you before:</p>
<ul>
<li><strong>Monitoring</strong>: The first step of monitoring is simple: Just make sure you write to a log file that is being monitored by your operations department. The second step requires some work: Create a servlet (or a Jetty Handler) that a monitoring tool can ping to check that everything is okay. Taking control of this means that you can improve it: Check if your data sources can connect, if your file share is visible, if that service answers. Maybe add application-calibrated load reporting. Beyond that, Jetty has good JMX support, but I’ve never needed it myself.</li>
<li><strong>Load balancing</strong>: My setup supports no load balancing or failover out of the box. However, this is normally something that the web server or routers in front of the application server anyway. You might want to look into <a href="http://docs.codehaus.org/display/JETTY/Configuring+mod_proxy">Jetty’s options for session affinity</a>, if you need that.</li>
<li><strong>Security</strong>: Jetty supports JAAS, of course. Also: In all the environments I’ve been working with (CA SiteMinder, Sun OpenSSO, Oracle SSO), the SSO server sends the user name of the currently logged in user as an HTTP header. You can get far by just using that.</li>
<li><strong>Consistency</strong>: If you deploy more than one application as an embedded application server, the file structure used by an application (if any) should be standardized. As should the commands to start and stop the application. And the location of logs. Beyond that, reuse what you like, recreate what you don’t.</li>
</ul>
<p>Taking control of your destiny</p>
<p>Using an embedded application server means using the application server as a library instead of a framework. It means taking control of your “main” method. There’s a surprisingly small number of things you need to work out yourself. In exchange, you get the control to do many things that are impossible with a big-A Application Server.</p>
<p><strong>Reference:</strong> <a href="http://www.javaworld.com/community/?q=node/4133" target="_blank" rel="noopener">http://www.javaworld.com/community/</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/why-and-how-to-use-jetty-in-mission-critical-production/">Why and how to use Jetty in mission-critical production</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/why-and-how-to-use-jetty-in-mission-critical-production/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How to copy VSS project from one VSS database to another one without loosing history</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 06 Oct 2009 11:45:33 +0000</pubDate>
				<category><![CDATA[VSS]]></category>
		<category><![CDATA[Copy]]></category>
		<category><![CDATA[Copy from VSS database to another with history]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Loss]]></category>
		<category><![CDATA[project copy one VSS database to another one with history]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Visual Source Safe]]></category>
		<category><![CDATA[visual source safe Guide]]></category>
		<category><![CDATA[visual source safe tutorial]]></category>
		<category><![CDATA[VSS best practices]]></category>
		<category><![CDATA[VSS Database]]></category>
		<category><![CDATA[VSS database best practices]]></category>
		<category><![CDATA[VSS database copy with history]]></category>
		<category><![CDATA[VSS Project]]></category>
		<category><![CDATA[Without]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/10/06/how-to-copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history/</guid>

					<description><![CDATA[<p>If you have any of the following questions in your mind, then this article is the perfect destination for you. [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history/">How to copy VSS project from one VSS database to another one without loosing history</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4182" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/vss-project.png" alt="copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/vss-project.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/vss-project-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><b>If you have any of the following questions in your mind, then this article is the perfect destination for you.</b></p>
<ul>
<li>How to copy VSS project from one VSS database to another one without loosing history</li>
<li>How to move VSS project from one location to another location</li>
<li>Moving Visual SourceSafe projects or databases to a new location?</li>
<li>Moving a project or projects from one database to another, while preserving the project&#8217;s history?</li>
</ul>
<p>The procedures within each scenario may vary depending on the version of Visual SourceSafe you are running.</p>
<p><b>APPLIES TO</b></p>
<p>Microsoft Visual SourceSafe 5.0 Standard Edition</p>
<p>Microsoft Visual SourceSafe 6.0 Standard Edition</p>
<p>NOTE: This process is for Visual SourceSafe 5.0 or greater only.</p>
<p><b>Requirement:</b></p>
<p>1.   Use the SSARC and SSRESTOR utilities included in Visual SourceSafe 5.0. With these utilities, you can archive projects, preserve their histories, and restore them to a new database.</p>
<p>2.   You must have SourceSafe Admin privileges to use these utilities</p>
<p>3.   In order to restore a project successfully your archive must include the latest versions all the files in the project. If you use the -v switch with SSARC to archive off earlier versions of your files, you will not be able to restore that archive to a different database because it needs the later versions.</p>
<p>4.   Because the physical file names get renamed when you restore a project to a new database, it may be necessary to reconnect projects that are integrated with Visual SourceSafe.</p>
<p><b>Warning:</b></p>
<p>1.   always be very careful when archiving and deleting files</p>
<p>2.   Backing up source files is like voting, do it early and often (warning, this may not be legal in your jurisdiction).</p>
<p>3.   Test your backups out before you actually need them, avoid permanent deletes and keep copies in multiple locations.</p>
<p><b> </b></p>
<p><b>There are two ways to Archive and Restore Project/Files from one database to another.</b></p>
<p><b>To Archive:</b></p>
<p>1.   Using To archive a database using Visual SourceSafe Administrator</p>
<p>2.   SSARC</p>
<p><b>Archival of a database allows you to:</b></p>
<p>* Save disk space on the Visual SourceSafe server or other machine hosting the database.<br />
* Make the Show History command work more quickly.<br />
* Transport files and projects between Visual SourceSafe databases, keeping history information intact.<br />
* Provide a compressed file backing up all or part of a database.</p>
<p><b>How to Archive Visual SourceSafe (VSS) Project?</b></p>
<p><b>Method1: Using Visual SourceSafe Administrator:</b></p>
<p>The Visual SourceSafe Administrator program allows you to archive your databases using the Archive Projects command, and to restore them from backup using the Restore Projects command.</p>
<p><b>To archive a database using Visual SourceSafe Administrator:</b></p>
<p>1. Ensure that no one is using the database and that the ANALYZE utility will not run during the archive operation.<br />
2. Open the database for which you want to archive information.<br />
3. On the Archive menu of Visual SourceSafe Administrator, click Archive Projects.<br />
4. In the Archive wizard, select the project(s) to archive, and click OK.<br />
5. If there are additional projects to be archived, indicate this in step 1 of the wizard, and click Next when finished.<br />
6. In step 2 of the wizard, specify how you want the project(s) to be archived, and click Next when finished. For each choice, you can use Browse to search for and select an archived file to overwrite the existing file.<br />
7. In step 3 of the wizard, specify the versions for the data to archive, using the Version box.<br />
8. Add a comment to the Comment box to document the archive operation.<br />
9. Click Finish to complete the wizard. The archive is written to a *.ssa file in the directory that you have specified.</p>
<p><b>Method2: Using SSARC: &#8211;</b></p>
<p>Another way of making an archive is to use the Visual SourceSafe SSARC utility from the command line.<br />
Examples</p>
<p>SSARC -d- -yadmin,password archive.ssa $/<br />
Backup the entire default Sourcesafe database to archive.ssa, leaving the database exactly as it is.</p>
<p>SSARC -d- &#8220;-vlProduction Release&#8221; -yadmin,password -olog.txt archive.ssa $/Test</p>
<p>Backup everything since the version labelled &#8216;Production Release&#8217; and create a log file with the results of the archiving process.</p>
<p>SSARC -d -x -yadmin,password archive.ssa &#8220;$/Project Global Domination&#8221; $/OtherProject</p>
<p>Description:  Archive, and delete the deleted files from two projects.</p>
<p>SSARC -i -yadmin,password -olog.txt &#8220;-cArchive Everything&#8221; archive.ssa $/</p>
<p>Description:  Archive the entire Sourcesafe database, while creating a log file, adding a comment, and running non-interactively, suitable for a scheduled task.<br />
To Restore Project/Files from one database to another.</p>
<p><b>To Restore:</b></p>
<p>1.   Using To archive a database using Visual SourceSafe Administrator</p>
<p>2.   SSRESTOR</p>
<p>&nbsp;</p>
<p><b>How to Restore Visual SourceSafe(VSS)Project?</b></p>
<p><b>Method 1: Using Visual SourceSafe Administrator</b></p>
<p>Visual SourceSafe Administrator supports restoration of a database from an archive using its Restore Projects command.</p>
<p><b>To restore a database using Visual SourceSafe Administrator</b></p>
<p>1. Make sure that no one is using the database and that the ANALYZE utility will not run during the restore operation.<br />
2. On the Archive menu of Visual SourceSafe Administrator, click Restore Projects.<br />
3. In the Restore wizard, enter or locate the archive file from which to restore, and then click Next.<br />
4. In step 2 of the wizard, you can choose the items to restore to the database, and click Next to proceed.<br />
5. Use step 3 of the wizard to specify options for restoring the selected items to the database.<br />
6. Add a comment to the Comment box to document the restore operation.<br />
7. Click Finish to complete the wizard.<br />
8. Verify the database directories carefully to make sure that the restore operation has put the restored items where you intended.</p>
<p><b>Method 2: Using SSRESTOR Utility</b></p>
<p>Restores information from a previously created archive. If the restore operation attempts to create a duplicate file or project name, the operation fails. Visual SourcSafe also implements restore operations through its Restore wizard, available in Visual SourceSafe Administrator.<br />
Examples</p>
<p>SSRESTOR -la -yadmin,password archive.ssa $/</p>
<p>Display a list of all of the files archived in archive.ssa.</p>
<p>SSRESTOR &#8220;-p$/Test 2&#8221; -sD:\newfolder\ -yadmin,password backup.ssa $/Test</p>
<p>Restores project $/Test to the database to a new location, $/Test 2, from the archive file backup.ssa, in a different Sourcesafe database.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history/">How to copy VSS project from one VSS database to another one without loosing history</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-copy-vss-project-from-one-vss-database-to-another-one-without-loosing-history/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSARC Utility &#038; SSRESTOR Utility &#8211; Archive, Restore VSS Project &#8211; Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/ssarc-utility-ssrestor-utility/</link>
					<comments>https://www.scmgalaxy.com/tutorials/ssarc-utility-ssrestor-utility/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 06 Oct 2009 11:41:40 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Archive VSS Project]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Instructions]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Restore VSS Project]]></category>
		<category><![CDATA[SSARC]]></category>
		<category><![CDATA[SSARC Tutorial]]></category>
		<category><![CDATA[SSARC Utility]]></category>
		<category><![CDATA[SSRESTOR]]></category>
		<category><![CDATA[SSRESTOR Tutorial]]></category>
		<category><![CDATA[SSRESTOR Utility]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[Visual Source Safe]]></category>
		<category><![CDATA[VSS]]></category>
		<category><![CDATA[VSS Project]]></category>
		<category><![CDATA[Ways]]></category>
		<category><![CDATA[What is SSARC Utility]]></category>
		<category><![CDATA[What is SSRESTOR Utility]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/10/06/ssarc-utility-ssrestor-utility/</guid>

					<description><![CDATA[<p>Question:  How to Archive VSS Project in Visual Source Safe (VSS)? How to Restore VSS Project in  Visual Source Safe [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/ssarc-utility-ssrestor-utility/">SSARC Utility &#038; SSRESTOR Utility &#8211; Archive, Restore VSS Project &#8211; Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4067" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/ssarc-utility-ssrestor-util.png" alt="ssarc-utility-ssrestor-utility" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/ssarc-utility-ssrestor-util.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/ssarc-utility-ssrestor-util-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p class="MsoNormal"><b>Question:  </b></p>
<p class="MsoNormal"><b>How to Archive VSS Project in Visual Source Safe (VSS)?</b></p>
<p class="MsoNormal"><b>How to Restore VSS Project in  </b> <b>Visual Source Safe (VSS)?</b></p>
<p class="MsoNormal"><b>What is SSARC Utility?</b></p>
<p class="MsoNormal"><b>What is SSRESTOR Utility?</b></p>
<p class="MsoNormal">
<p class="MsoNormal"><b> <span style="font-size: 15pt; line-height: 115%; font-family: 'Arial','sans-serif'; color: black;"> SSARC Utility</span></b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Allows you to archive files, projects, or old versions from a Visual SourceSafe database. Each time you run SSARC (Ssarc.exe), the utility asks only once before it deletes the files/projects. Visual SourceSafe also implements archive operations through its Archive wizard, available in Visual SourceSafe Administrator.</span></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> The utility SSRESTOR is used for restoration of archived files. Use of SSARC and SSRESTOR together allows wide-area Visual SourceSafe installations to move files and projects among databases. </span></p>
<p class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; color: #333333;"> Limitation: </span> <span style="font-size: 8.5pt; line-height: 115%; font-family: 'Verdana','sans-serif'; color: black;"> SSARC cannot create an archive file that is greater than 2 GB. If you try to archive a project larger than this, you will receive an Out of Memory and/or a CRC mismatch error message. To work around this limitation, you will need to archive each subproject.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 115%; font-family: 'Verdana','sans-serif'; color: black;">  </span></b></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 115%; font-family: 'Verdana','sans-serif'; color: black;"> Syntax</span></b></p>
<p class="MsoNormal"><span style="color: black;">ssarc [-C][-D][-I-][-O][-S][-V][-X][-Y] &lt;archive file to create&gt; &lt;files/projects to archive&gt;</span></p>
<p class="MsoNormal">
<p class="MsoNormal">If you are not familiar with the syntax conventions used, <code> <span style="font-size: 10pt; line-height: 115%;"> &lt;</span></code> and <code> <span style="font-size: 10pt; line-height: 115%;"> &gt;</span></code> are used to delimit arguments. The &lt; and &gt; characters are not typed in. The <code> <span style="font-size: 10pt; line-height: 115%;"> |</span></code> means a choice of options. Items enclosed in square brackets, <code> <span style="font-size: 10pt; line-height: 115%;"> []</span></code> are optional, and items not enclosed in square brackets are mandatory.</p>
<p class="MsoNormal"><span style="color: black;"> </span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 115%; font-family: 'Verdana','sans-serif'; color: black;"> Utility Options</span></b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> The following table describes options available with SSARC.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -C</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a comment (standard Visual SourceSafe parameter). The comment is inserted into the Visual SourceSafe history if the items are deleted from the database as part of the archived record. The comment is also inserted into the archive file itself, if there is one.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -C-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies no comment.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -D</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Deletes the archived items from the database.</span></p>
<p class="MsoNormal">Specifiying the -d option will delete from your project the items that you are archiving. This will delete your project from Sourcesafe if you use it! Of course, you can restore from your backup file, but for normal use, and for smaller projects I don&#8217;t recommend this. This function obviously has its uses, but be sure you want to do this.</p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -D-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Controls whether Visual SourceSafe actually deletes anything from the database. <b>If this option is not used,</b> the default is to ask.</span></p>
<p class="MsoNormal">If the -d- option is used, then SSARC will not delete the projects the items you are archiving. The default is to prompt the user interactively, so if you want to run this from a script, you will need to choose one of the options, or use the -i- flag</p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -I-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies no prompt for input (standard Visual SourceSafe parameter).</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -O</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Paginates or redirects output (standard Visual SourceSafe parameter).</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -S&lt;srcsafe.ini path&gt;, &lt;data path&gt;</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a path to Srcsafe.ini and the Data directory. The full syntax looks like -Sc: \VSS, OldDB. The item before the comma is the full path to Srcsafe.ini, and the item after the comma is the string in parentheses in a Data_Path setting. If there is no comma, a Srcsafe.ini path is indicated, but no data string. If the first character after the –S is a comma, a data string is specified, but no Srcsafe.ini path. </span></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;">  </span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -V[D|L]&lt;version&gt;</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a version number to archive (standard Visual SourceSafe parameter). Enter the version number in standard Visual SourceSafe format (number, date, or label). If this option is not used, SSARC operates on entire files or projects, instead of all versions up to and including a certain version.</span></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Note that SSARC is generally inclusive. That is, if you type –V9, you create an archive file that contains version 9.0 and everything before it. The delete pass is also inclusive, that is, version 9.0 is actually deleted unless it is in the label format. In the latter case, the label is stored in the archive file but is not deleted. If –V is specified, you never delete the current version, even if you specify -D9/9/99. If you are using a version the label format, and the label has a space in it, you must place the entire option in quotation marks, for example, &#8220;-VThisOne&#8221;.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -X</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Archives only deleted items in the specified files and projects. Deleted items are still stored in the Visual SourceSafe database unless the <b>Destroy Permanently</b> option is selected when performing a <b>Delete</b> command. </span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -X-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Archives all items in the specified files and projects. </span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -Y&lt;user&gt;,&lt;pwd&gt;</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies the user name and password (standard Visual SourceSafe parameter). An example is -YAdmin,Bunny.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> archive file to create</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies the name of the archive file to create during the archive operation.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> files/projects to archive</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies files and projects to back up.</span></p>
<h3>Examples</h3>
<dl>
<dt><code>SSARC -d- -yadmin,password archive.ssa $/</code></dt>
<dd>Backup the entire default Sourcesafe database to archive.ssa, leaving the database exactly as it is.</dd>
<dt><code>SSARC -d- "-vlProduction Release" -yadmin,password -olog.txt  	archive.ssa $/Test</code></dt>
<dd>Backup everything since the version labelled &#8216;Production Release&#8217; and create a log file with the results of the archiving process.</dd>
<dt><code>SSARC -d -x -yadmin,password archive.ssa "$/Project Global  	Domination" $/OtherProject</code></dt>
<dd>Archive, and delete the deleted files from two projects.</dd>
<dt><code>SSARC -i -yadmin,password -olog.txt "-cArchive Everything"  	archive.ssa $/</code></dt>
<dd>Archive the entire Sourcesafe database, while creating a log file, adding a comment, and running non-interactively, suitable for a scheduled task.</dd>
</dl>
<p class="MsoNormal">
<p class="MsoNormal"><b> <span style="font-size: 15pt; line-height: 115%; font-family: 'Arial','sans-serif'; color: black;"> SSRESTOR Utility</span></b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Restores information from a previously created archive. If the restore operation attempts to create a duplicate file or project name, the operation fails. Visual SourcSafe also implements restore operations through its Restore wizard, available in Visual SourceSafe Administrator.</span></p>
<p class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; color: #333333;"> Limitation: </span> <span style="font-size: 8.5pt; line-height: 115%; font-family: 'Verdana','sans-serif'; color: black;"> SSRESTOR cannot restore a project that is larger than 2 GB. A project larger than this cannot be archived.</span></p>
<p class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; color: #333333;">  </span></p>
<p class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; color: #333333;"> Syntax: </span></p>
<p class="MsoNormal"><span style="font-size: 10pt; line-height: 140%; font-family: 'Courier New'; color: black;"> ssrestor [-C][-I-][-L][-O][-P&lt;project&gt;][-S][-T][-X][-Y]</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif'; color: black;"> &lt;archive file to restore&gt; [files/projects]</span></p>
<p class="MsoNormal"><span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif'; color: black;">  </span></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Utility Options </span></p>
<p class="MsoNormal"><a class="mceItemAnchor" name="sectionToggle1"></a> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> The following table describes options available with this command.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -C</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a comment (standard Visual SourceSafe parameter). The comment is applied to the history entry for restored item(s).</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -C-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies no comment.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -I-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies no input (standard Visual SourceSafe parameter).</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -L</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a list only, without any restoration. </span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -LA</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a list of all files and subprojects listed under a project, for example, project $/A.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -O</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Redirects output (standard Visual SourceSafe parameter).</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -P&lt;project&gt;</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a project to which to restore content. For instance, if you archive $/A/BAR.C and then restore it, it will be restored as $/A/BAR.C.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -S&lt;srcsafe.ini path&gt;&lt;data path&gt;</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies a path to Srcsafe.ini and the Data directory.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -T</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Tests the archive file for corruption, but does not actually restore from the archive. </span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -X, -X-</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Identifies an item that you want to restore, for example, $/a/b. This option distinguishes between deleted projects and undeleted projects that have the same names. For example, if you have deleted $a/b and specify the -X option, SSRESTOR restores the deleted $/a/b. If you specify -X-, SSRESTOR restores an undeleted $/a/b. Even though they have the same name, note that these are two different projects that the utility treats differently.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> -Y&lt;user&gt;,&lt;pwd&gt;</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies user name and password (standard Visual SourceSafe parameter). An example is -YAdmin,Moggy.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> archive file to restore</span> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies the name of the archive file from which to restore the database.</span></p>
<p class="MsoNormal"><b> <span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> files/projects</span></b><b> </b></p>
<p class="MsoNormal"><span style="font-size: 8pt; line-height: 140%; font-family: 'Verdana','sans-serif'; color: black;"> Specifies files and projects to restore.</span></p>
<h3>Examples</h3>
<dl>
<dt><code>SSRESTOR -la -yadmin,password archive.ssa $/</code></dt>
<dd>Display a list of all of the files archived in archive.ssa.</dd>
<dt><code>SSRESTOR "-p$/Test 2" -sD:\newfolder\ -yadmin,password backup.ssa  	$/Test</code></dt>
<dd>Restores project $/Test to the database to a new location, $/Test 2, from the archive file backup.ssa, in a different Sourcesafe database.</dd>
</dl>
<h2>Miscellaneous tips</h2>
<ul>
<li>Putting the path to the &lt;VSS PATH&gt;\win32 folder in your PATH environment variable makes shell commands a lot easier</li>
<li>If you get a message &#8220;Only ADMIN can run this utility&#8221;, it means that you are either not specifying the admin account, or the password is incorrect. Use <code>"-yadmin,password"</code> if the admin password is &#8220;password&#8221;, or <code>"-yadmin,"</code> if the admin password is not set (not recommended!).</li>
<li>If you are using an option that has a space in the argument, enclose the whole thing with quote marks, i.e. &#8220;-p$/Project A&#8221;</li>
<li>A daily archive is easy to do with a Windows shell script, maybe something like this. Then use Scheduled Tasks to have this run every day.<br />
<blockquote>
<pre>function q (str)
	' to make the command a bit more readable, I hope
	q = """" &amp; str &amp; """"
end function</pre>
<p>PROJECT = &#8220;$/&#8221;<br />
USERID = &#8220;admin&#8221;<br />
PASSWORD = &#8220;admin&#8221;</p>
<p>&#8216; location of SSARC program<br />
SSARCPATH = &#8220;C:\program files\microsoft visual studio\common\vss\win32\ssarc.exe&#8221;<br />
&#8216; folder of srcsafe.ini<br />
SRCSAFEINIPATH = &#8220;&#8221;<br />
&#8216; prepended to filename in case you&#8217;re doing more than one.<br />
LABEL = &#8220;ARCHIVE&#8221;<br />
&#8216; destination of archive files<br />
BACKUPFOLDER = &#8220;C:\BACKUPS\&#8221;</p>
<p>&#8216; generate a name based on the time.<br />
today = now()<br />
backupfilename = LABEL &amp; &#8220;-&#8221; &amp; formatdatetime(now,2) &amp; &#8220;.ssa&#8221;</p>
<p>cmd = q(SSARCPATH) &amp; &#8221; &#8221; &amp; _<br />
q(&#8220;-s&#8221; &amp; SRCSAFEINIPATH &amp; &#8220;,&#8221;) &amp; &#8221; -i- &#8221; &amp; &#8221; -d- &#8221; &amp; _<br />
q(&#8220;-y&#8221; &amp; USERID &amp; &#8220;,&#8221; &amp; PASSWORD) &amp; &#8221; &#8221; &amp; _<br />
q(BACKUPFOLDER &amp; backupfilename) &amp; &#8221; &#8221; &amp; q(PROJECT)</p>
<p>Set WshShell = WScript.CreateObject(&#8220;WScript.Shell&#8221;)<br />
wscript.echo cmd<br />
WshShell.run cmd<br />
set wsshell = nothing</p></blockquote>
</li>
</ul>
<p class="MsoNormal">
<p>The post <a href="https://www.scmgalaxy.com/tutorials/ssarc-utility-ssrestor-utility/">SSARC Utility &#038; SSRESTOR Utility &#8211; Archive, Restore VSS Project &#8211; Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/ssarc-utility-ssrestor-utility/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How To Create a Unique SRCSAFE.INI File ?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-create-a-unique-srcsafeini-file/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-create-a-unique-srcsafeini-file/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 06 Oct 2009 11:40:30 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Create]]></category>
		<category><![CDATA[Create a new SRCSAFE.INI file]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[How to create SRCSAFE.INI File]]></category>
		<category><![CDATA[How to generate SRCSAFE.INI File]]></category>
		<category><![CDATA[New]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[SRCSAFE.INI]]></category>
		<category><![CDATA[SRCSAFE.INI File]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Unique]]></category>
		<category><![CDATA[Visual SourceSafe]]></category>
		<category><![CDATA[VSS Database]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/10/06/how-to-create-a-unique-srcsafeini-file/</guid>

					<description><![CDATA[<p>1. Create a new SRCSAFE.INI file and place it in the desired location. 2. If you want include the default [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-create-a-unique-srcsafeini-file/">How To Create a Unique SRCSAFE.INI File ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><b></b><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4070 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/srcsafeini-file.png" alt="srcsafeini-file" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/srcsafeini-file.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/10/srcsafeini-file-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /><br />
<b>1.</b> Create a new SRCSAFE.INI file and place it in the desired location.<br />
<b>2. </b>If you want include the default SRCSAFE.INI in the unique copy, add the following line:</p>
<p>#INCLUDE &lt;SS path&gt;\SRCSAFE.INI</p>
<p><b>3.</b> Create the following environment variable:</p>
<p>SET SSDIR=&lt;path to VSS directory&gt;</p>
<p>(such as SET SSDIR = \\MyServer\MyVSSdir)</p>
<p>While it is possible to do this with Visual SourceSafe 5.0, in is not necessary. Simply open the database using file-&gt;open.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-create-a-unique-srcsafeini-file/">How To Create a Unique SRCSAFE.INI File ?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-create-a-unique-srcsafeini-file/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
