Sunday, 20 October 2013

Important SVN Commands

SVN Commands


SVN Commit – Commit/Chekins changes into Repo

Syntax:
$ svn commit -m "Enter Log messages"

SVN Diff – To See Difference in files

Syntax:
$ svn diff filename

SVN Status – Status of the working copy

Syntax:
$ svn status PATH

SVN add — Add files, directories, or symbolic links

Syntax:
$ svn add path

SVN copy (cp) — Copy a file or directory in a working copy or in the repository.

Syntax:
$ svn copy foo.txt bar.txt

SVN mkdir — Create a new directory under version control.

Syntax:
$ svn mkdir URL

Sample example for Nant Build file

Sample Example


 <?xml version="1.0"?>
    <project name="Hello World" default="build" basedir=".">
        <description>The Hello World of build files.</description>
        <property name="debug" value="true" overwrite="false" />
        <target name="clean" description="remove all generated files">
            <delete file="HelloWorld.exe" failonerror="false" />
            <delete file="HelloWorld.pdb" failonerror="false" />
        </target>
        <target name="build" description="compiles the source code">
            <csc target="exe" output="HelloWorld.exe" debug="${debug}">
                <sources>
                    <includes name="HelloWorld.cs" />
                </sources>
            </csc>
        </target>
    </project>


Sample example for Ant Build file

Sample Example



<project name="MyProject" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="compile" depends="init"
        description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
  </target>

  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

Saturday, 6 July 2013

How to Install SVN (Sub version) in LINUX Machine?

Step By Step Configuring SVN Server in Linux


  •  Install apache/httpd 
yum install httpd
  • Make sure you apache is running. You can also type ‘http://localhost’ at your browser and apache test page should appear if your apache is running
/etc/rc.d/init.d/httpd start
OR
service httpd start
  • Make it start by default on startup
chkconfig httpd on

1. Change root user

su -
## OR ##
sudo -i

2. Install needed packages (mod_dav_svn and subversion)

yum install mod_dav_svn subversion

3. Modify Subversion config file /etc/httpd/conf.d/subversion.conf

Add following config to /etc/httpd/conf.d/subversion.conf file:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   AuthType Basic
   AuthName "Subversion repositories"
   AuthUserFile /etc/svn-auth-users
   Require valid-user
</Location>

4. Add SVN (Subversion) users

Use following command:
## Create testuser ##
htpasswd -cm /etc/svn-auth-users testuser
New password: 
Re-type new password: 
Adding password for user testuser
 
## Create testuser2 ##
htpasswd -m /etc/svn-auth-users testuser2
New password: 
Re-type new password: 
Adding password for user testuser2
Note: Use exactly same file and path name as used on subversion.conf file. This example use /etc/svn-auth-users file.

5. Create and configure SVN repository

mkdir /var/www/svn
cd /var/www/svn
 
svnadmin create testrepo
chown -R apache.apache testrepo
 
 
## If you have SELinux enabled (you can check it with "sestatus" command) ##
## then change SELinux security context with chcon command ##
 
chcon -R -t httpd_sys_content_t /var/www/svn/testrepo
 
## Following enables commits over http ##
chcon -R -t httpd_sys_rw_content_t /var/www/svn/testrepo
Restart Apache:
/etc/init.d/httpd restart
## OR ##
service httpd restart
Goto http://localhost/svn/testrepo address and you should see something like following, write username and password:

SVN testrepo revision 0:


6. Configure repository

To disable anonymous access and enable access control add following rows to testrepo/conf/svnserve.conf file:
## Disable anonymous access ##
anon-access = none
 
## Enable access control ##
authz-db = authz

7. Create trunkbranches and tags structure under testrepo

Create “template” directories with following command:
mkdir -p /tmp/svn-structure-template/{trunk,branches,tags}
Then import template to project repository using “svn import” command:
svn import -m 'Initial import' /tmp/svn-structure-template/ http://localhost/svn/testrepo/
Adding         /tmp/svn-structure-template/trunk
Adding         /tmp/svn-structure-template/branches
Adding         /tmp/svn-structure-template/tags
 
Committed revision 1.
Check results on browser and see testrepo revision 1:


Friday, 28 June 2013

Build and Release Engineer


Build And Release

The release engineer may provide software, services, or both to software engineering and software quality assurance teams. The software provided may be build tools, assembly, or other reorganization scripts which take compilation output and place them into a pre-defined tree structure, and even to the authoring and creation of installers for use by test teams or by the ultimate consumer of the software. The services provided may include software build (compilation) automation, automated test integration, results reporting, and production of or preparation for software delivery systems—e.g., in the form of electronic media (CDs, DVDs) or electronic software distribution mechanisms.


The Roles & Responsibilities of a 'Build and Release Engineer'

The Build and Release Engineer will play a main role in the software development life cycle

Roles & Responsibilities :-

• Work with Engineering, Operations, Quality Assurance and Project Management to define and execute projects that implement build, release and deployment of web software.

• Manage the source code control system.

• Develop an automated, continuous, build process that reviews the source code, identifies build errors and notifies appropriate parties to expedite/facilitate synchronization to the latest build.

• Improve productivity by designing & developing full-featured build systems; implementing tools and scripts that enable efficient, flexible builds (Shell, Perl)

• Integrated the build system to the bug tracking system

• Develop an efficient deployment process for web deployments (rolling, hot etc.)

• Identify and propagate best practices and processes

• Communicate releases related activities to all the stakeholders and take their feedback to improve the process.


Skillset Required :-

• Extensive experience working with Cruise Control or Hudson

• Operational knowledge in Java, Apache, Tomcat, database

• Source control tools: Experience in at least one source control tool like GIT, CVS, Perforce, Subversion, clerks etc. Experience in administrating one of these tools is a plus.

• Build scripting: Fluency in any of the build scripting languages like ANT, nANT, make, Maveen.

• General scripting: Good knowledge of a scripting language like Perl, Python, Unix/Windows scripting is preferred

• Bug tracking Tools: Working experience of one defect tracking system (Bugzilla, Jira etc.)

• General understanding of the platform in which you work (J2EE, .Net)..



Thursday, 27 June 2013

SVN Tutorial for Beginners

Subversion Tutorial


Subversion is an open source revision control software which is designed to be a modern replacement of CVS. This tutorial describes how to setup a SVN repository in a Linux/Unix machine, how to checkout/import modules, update/commit changes to the repository under Windows/Linux. Some examples specific for UBC CS users are also provided.

The structure of SVN Repo is

Trunck
Tag
Branch

Run Commands

Run Commands ..



RUN Commands !

1. Accessibility Controls - access.cpl
2. Accessibility Wizard - accwiz
3. Add Hardware Wizard - hdwwiz.cpl
4. Add/Remove Programs - appwiz.cpl
5. Administrative Tools - control admintools
6. Automatic Updates - wuaucpl.cpl
7. Bluetooth Transfer Wizard - fsquirt
8. Calculator - calc
9. Certificate Manager - certmgr.msc
10. Character Map - charmap
11. Check Disk Utility - chkdsk
12. Clipboard Viewer - clipbrd
13. Command Prompt - cmd
14. Component Services - dcomcnfg
15. Computer Management - compmgmt.msc
16. Control Panel - control
17. Date and Time Properties - timedate.cpl
18. DDE Shares - ddeshare
19. Device Manager - devmgmt.msc
20. Direct X Troubleshooter - dxdiag
21. Disk Cleanup Utility - cleanmgr
22. Disk Defragment - dfrg.msc
23. Disk Management - diskmgmt.msc
24. Disk Partition Manager - diskpart
25. Display Properties - control desktop
26. Display Properties - desk.cpl
27. Dr. Watson System Troubleshooting­ Utility - drwtsn32
28. Driver Verifier Utility - verifier
29. Event Viewer - eventvwr.msc
30. Files and Settings Transfer Tool - migwiz
31. File Signature Verification Tool - sigverif
32. Findfast - findfast.cpl
33. Firefox - firefox
34. Folders Properties - control folders
35. Fonts - control fonts
36. Fonts Folder - fonts
37. Free Cell Card Game - freecell
38. Game Controllers - joy.cpl
39. Group Policy Editor (for xp professional) - gpedit.msc
40. Hearts Card Game - mshearts
41. Help and Support - helpctr
42. HyperTerminal - hypertrm
43. Iexpress Wizard - iexpress
44. Indexing Service - ciadv.msc
45. Internet Connection Wizard - icwconn1
46. Internet Explorer - iexplore
47. Internet Properties - inetcpl.cpl
48. Keyboard Properties - control keyboard
49. Local Security Settings - secpol.msc
50. Local Users and Groups - lusrmgr.msc
51. Logs You Out Of Windows - logoff
52. Malicious Software Removal Tool - mrt
53. Microsoft Chat - winchat
54. Microsoft Movie Maker - moviemk
55. Microsoft Paint - mspaint
56. Microsoft Syncronization Tool - mobsync
57. Minesweeper Game - winmine
58. Mouse Properties - control mouse
59. Mouse Properties - main.cpl
60. Netmeeting - conf
61. Network Connections - control netconnections
62. Network Connections - ncpa.cpl
63. Network Setup Wizard - netsetup.cpl
64. Notepad - notepad
65. Object Packager - packager
66. ODBC Data Source Administrator - odbccp32.cpl
67. On Screen Keyboard - osk
68. Outlook Express - msimn
69. Paint - pbrush
70. Password Properties - password.cpl
71. Performance Monitor - perfmon.msc
72. Performance Monitor - perfmon
73. Phone and Modem Options - telephon.cpl
74. Phone Dialer - dialer
75. Pinball Game - pinball
76. Power Configuration - powercfg.cpl
77. Printers and Faxes - control printers
78. Printers Folder - printers
79. Regional Settings - intl.cpl
80. Registry Editor - regedit
81. Registry Editor - regedit32
82. Remote Access Phonebook - rasphone
83. Remote Desktop - mstsc
84. Removable Storage - ntmsmgr.msc
85. Removable Storage Operator Requests - ntmsoprq.msc
86. Resultant Set of Policy (for xp professional) - rsop.msc
87. Scanners and Cameras - sticpl.cpl
88. Scheduled Tasks - control schedtasks
89. Security Center - wscui.cpl
90. Services - services.msc
91. Shared Folders - fsmgmt.msc
92. Shuts Down Windows - shutdown
93. Sounds and Audio - mmsys.cpl
94. Spider Solitare Card Game - spider
95. SQL Client Configuration - cliconfg
96. System Configuration Editor - sysedit
97. System Configuration Utility - msconfig
98. System Information - msinfo32
99. System Properties - sysdm.cpl
100. Task Manager - taskmgr
101. TCP Tester - tcptest
102. Telnet Client - telnet
103. User Account Management - nusrmgr.cpl
104. Utility Manager - utilman
105. Windows Address Book - wab
106. Windows Address Book Import Utility - wabmig
107. Windows Explorer - explorer
108. Windows Firewall - firewall.cpl
109. Windows Magnifier - magnify
110. Windows Management Infrastructure - wmimgmt.msc
111. Windows Media Player - wmplayer
112. Windows Messenger - msmsgs
113. Windows System Security Tool - syskey
114. Windows Update Launches - wupdmgr
115. Windows Version - winver
116. Wordpad - write

Tuesday, 18 June 2013

Ant Tutorial


ANT Tutorial

Apache Ant is a Java based build tool from Apache Software Foundation. Apache Ant's build files are written in XML and take advantage of the open standard, portable and easy to understand nature of XML.

Ant Uses :-

Before diving deep into the definition of Apache Ant, one must understand the need for a build tool. Why do I need Ant, or more specifically, why do I need a build tool?
Do you spend your day doing the following manually?
  • Compile code
  • Package the binaries
  • Deploy the binaries to the test server
  • Test your changes
  • Copy code from one location to another

Features of Apache Ant

  • Ant is the most complete Java build and deployment tool available.
  • Ant is platform neutral and can handle platform specific properties such as file separators.
  • Ant can be used to perform platform specific tasks such as modifying the modified time of a file using 'touch' command.
  • Ant scripts are written using plain XML. If you are already familiar with XML, you can learn Ant pretty quickly.
  • Ant is good at automating complicated repetitive tasks.
  • Ant comes with a big list of predefined tasks.
  • Ant provides an interface to develop custom tasks.
  • Ant can be easily invoked from the command line and it can integrate with free and commercial IDEs.

Monday, 17 June 2013

About SCM & PPT on SCM

             

SCM

Software configuration management is the discipline of managing the evolution of complex software systems [IEEE STD 1987].

Software configuration management is the process of identifying, organizing & controlling changes to the software during development & maintenance. SCM Operates throughout software development lifecycle (SDLC). From the software developer's perspective, SCM facilitates the development & change implementation activities.

The common features in a SCM tool are
* Support for controlling all types of file
* Managing changes
* Supporting branching & merging 
* Identifying & recreating releases 
* Providing a project view

Importance of SCM in SDLC SCM tools provide project managers with total control of the entire process of software development. It can track changes made to the code by developers and communicate status of documents and code as well as changes that have been made to them. 

 Configuration Management Activities :
* Configuration item/CM aggregate identification
* Promotion management 
* Release management 
* Branch management
* Variant Management
* Change Management


SDLC Life cycle





About Build and Release Engineer

                                   
About Build and Release Engineer

A Build and Release Engineer is a person who oversees the process of building and provides a company’s software to market/customers/End Users. Engineers in this industry must have strong problem-solving and analytical skills, and they must be comfortable with multi-tasking and working in a fast-paced environment in different environments. Companies often look for build release engineers who have four-year bachelor’s degrees or two-year master’s degrees in computer engineering or computer science, along with build automation experience and SCM. Professionals in the field often serve as liaisons among a company’s various departments, including operations, engineering, and quality assurance areas.

Building different applications for technologies such as cellular phones and making these applications available for manufacturing is a chief duty of an engineer in the software development field. For this reason, a build release engineer must be well-versed in a variety of computer programming languages in order to build these applications accurately. In addition, an engineer has to maintain and build automation scripts. He or she also needs to possess knowledge of various release procedures.

A build release engineer is responsible for researching ways to improve the software building process and for sharing production information with managers as well. After researching how to enhance software building tools and technologies, an engineer puts newly-researched tools to use so as to create build release process efficiency. The engineer is also required to produce regular reports and performance metrics to managers regarding how built applications are working. Professionals in the build release engineering field additionally create and release guidelines for a company’s products. Both oral and written communication skills thus are important parts of the job.

Another important duty of an engineer in the software building industry involves testing, as quality assurance is necessary to ensure that created software applications work properly to meet customer needs. A build release engineer must create test plans and then implement these plans so as to pinpoint problems that need to be addressed. These professionals additionally create tools to monitor production systems and perform data mining, which involves extracting data from large databases and turning them into valuable information that helps a company to make various decisions.

Developing bug tracking systems also is critical in the role of a person who builds software applications. Using these systems along with test plans, a build release engineer strives to solve problems by producing software improvements and re-creating software to be released. Build release engineers often work on deadline and must have solid critical thinking skills and work well under pressure.

Thursday, 6 June 2013

Nant Tutorial

  Nant

NAnt is different.  Instead of a model where it is extended with shell-based commands, NAnt is extended using task classes.  Instead of writing shell commands, the configuration files are XML-based, calling out a target tree where various tasks get executed.  Each task is run by an object that implements a particular Task interface.
Granted, this removes some of the expressive power that is inherent in being able to construct a shell command such as 'find . -name foo -exec rm {}', but it gives you the ability to be cross-platform - to work anywhere and everywhere. And hey, if you really need to execute a shell command, NAnt has an <exec> task that allows different commands to be executed based on the OS it is executing on.

NSIS Tutorial for Beginners


Nullsoft Scriptable Install System

NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers. It is designed to be as small and flexible as possible and is therefore very suitable for internet distribution.
Being a user's first experience with your product, a stable and reliable installer is an important component of succesful software. With NSIS you can create such installers that are capable of doing everything that is needed to setup your software.
NSIS is script-based and allows you to create the logic to handle even the most complex installation tasks. Many plug-ins and scripts are already available: you can create web installers, communicate with Windows and other software components, install or update shared components and more.

Thursday, 30 May 2013

GIT Tutorial for Beginners

GIT Version Control

A version control system allows you to track the history of a collection of files and includes the functionality to revert the collection of files to another version. Each version captures a snapshot of the file system at a certain point in time. The collection of files is usually source code for a programming language but a typical version control system can put any type of file under version control.
The collection of files and their complete history are stored in a repository.

The process of creating different versions (snapshots) in the repository is depicted in the following graphic. Please note that this picture fits primarily to Git, another version control systems like CVS don't create snapshots but store file deltas.
Tricks and Tips