How to make SVN remember password
Who is this post for?
This post is for anyone who wants a step by step guide to accomplish any of the following
- Make a SVN client like tortoise svn remember password
- Make linux server remember your password when logging through putty
Tools you need:
- Putty
- Puttygen
What you need to do:
- Using putty – login to linux server. change directory to ~/.ssh/ by typing following command
cd ~/.ssh
- Type command
ssh-keygen -b 1024 -t dsa
and press enter. Do not enter a passphrase. Hit enter when prompted for one. Same for the filename. default filename = id_dsa and id_dsa.pub. id_dsa is the private key file and id_dsa.pub is the public key file.
- type command
cat ~/.ssh/id_dsa.pub
Copy the output to the clipboard by selecting the output by mouse.
- Type command
vi ~/.ssh/authorized_keys
Hit i to enter Insert mode and then paste your public key (if there is already a key in this file, move to the bottom before pasting). Hit the ESC key to leave Insert mode and type :wq and hit enter to save and exit vi editor.
- Using ftp download your key files – both private and public
- In order to use the private key we get from the server, we have to convert it to a putty format. This is because the private key file format is not specified by some standard body. We can accomplish this using puttygen. Open Puttygen
- In the tree structure on left, choose conversion -> import key -> choose the private key file downloaded from ftp
- Choose to save private key. Choose path and save the file as anything.ppk
- Run Putty. Specify parameters
- Session->HostName: Hostname or IP Adress of your server
- Session->Protocol: SSH
- Session->Saved Sessions: MyConnection
- SSH->Prefered SSH Protocol version: 2
- SSH->Auth->Private Key file for auth: $PATH$mykey.PKK (replace $PATH$ with real path to the mykey.PKK file)
- Go back to Session tab and hit “save” button. You will see “MyConnection” in the list of available connections.
- Next click “open” and you should see a telnet login prompt. Use “myuser” as username (without double quotes of course) and if everything is OK, you don’t have to provide a password to your system. If the system still requires a password, something went wrong.
- Now that linux server and putty manage to remember your password, you need an application client to use it. In this case it is SVN client e.g. tortoise svn. Go to TortoiseSVN->RepoBrowser and specify a URL like this:
svn+ssh://myuser@MyConnection/usr/local/repos
…where MyConnection is the putty session name and /usr/local/repos is my svn repository on linux server
And you are done …
Related posts
Rituals
Respecting somebody’s genuine feelings is more than enough a reason to follow rituals you may not necessarily want to.
C# word automation : Inserting page break
I went through many articles in order to insert a page break in word document with C#. Though they seemed to work for others, they did not for me. But I did find a way to insert breaks.
object oEndOfDoc = "\\endofdoc"; object paramNextPage = WdBreakType.wdSectionBreakNextPage; wrdDocument.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertBreak(ref paramNextPage);
WHERE
wrdDocument
- Active word document object of type : Microsoft.Office.Interop.Word.Document
C# Word Automation: Inserting images with text wrapping around
As I work, I keep noting about my work here. Earlier, I wrote about inserting images in a word document at a bookmark in this post. Later, arose the need for having text wrapping around an image if it is small for document width. Solution is to use frames to achieve it and here is how I did it.
CImage class definition:
public class CImage
{
public string Path
{
get;
set;
}
public decimal Id
{
get;
set;
}
public string Title
{
get;
set;
}
public Image Bitmap
{
get;
set;
}
public bool BusyLoading
{
get;
set;
}
public void GetImage()
{
try
{
BusyLoading = true;
WebRequest req = WebRequest.Create(Path);
WebResponse response = req.GetResponse();
Stream stream = response.GetResponseStream();
Bitmap = Image.FromStream(stream);
stream.Close();
}
catch
{
Bitmap = null;
}
finally
{
BusyLoading = false;
}
}
public override bool Equals(object obj)
{
CImage objToCompare = obj as CImage;
if (objToCompare == null)
return false;
return this.Id.Equals(objToCompare.Id);
}
}
Adding frame at end of the document (can be any bookmark for that matter)
Frame wrdFrame = wrdDocument.Frames.Add(wrdDocument.Bookmarks.get_Item(ref oEndOfDoc).Range);
WHERE
wrdDocument
- Active word document object of type : Microsoft.Office.Interop.Word.Document
Setting frame properties for textwrap and autosize
wrdFrame.TextWrap = true; wrdFrame.VerticalDistanceFromText = 7; wrdFrame.HorizontalDistanceFromText = 10; wrdFrame.HeightRule = WdFrameSizeRule.wdFrameAuto; wrdFrame.WidthRule = WdFrameSizeRule.wdFrameAuto;
Inserting image in frame
Clipboard.SetDataObject(objImage.Bitmap); wrdFrame.Range.Paste();
WHERE
objImage
- Object of type CImage
And you are done !
Important information
You need to add a COM reference to your favorite word object library which should in turn add
- Microsoft.Office.Core
- VBIDE
- Word
If you do not see these added, make sure you have PIAs for office version installed on your machine.
Get Office 2007 PIAs here
Get Office 2003 PIAs here
Related Posts
Anticipating TortoiseSVN 1.7 Beginner’s Guide
Yesterday, I got an email from Zaid Siddiqui, Packt Publication asking to review their book Tortoise SVN 1.7 Beginner’s Guide by Lesley Harrison. And I agreed instantly being curious and experimental about SVN related stuff and Tortoise SVN being an important part in the whole scheme of things.

Before I start reading any book, I like to anticipate the experience it may offer me by it’s cover, title, and preface. This time of course it is no different and I thought i might as well write it down to check later what I got and what I did not.
By the sound of it’s title, I am really looking forward to using this book as a recommendation to a fresh out of college hired developer on team. I usually get really hard time explaining them why we do certain things with tortoise SVN the way we do. After some experience, they follow commonly used instructions and panic when they see something like a conflict for a file. Some of them actually did a revert without even giving it a second thought out of panic. Since this book is for beginners, I would really like to introduce a rule – look in this book if you have doubts and before taking any action [and before giving me a hard time
].
Second role I would like this book to play in my life as a process specialist is of a my personal desk copy – helping me get instant answers to problems I face in daily operations especially managing various versions and releases for various sizes of projects.
Security is another aspect I would like to get insights in. But that probably would be better covered as server part than tortoise SVN. Anything on that would certainly be delicious.
That much for now. Let’s see what I get after going through this book.
C# Word Automation : How to add a Shape textbox
Though I took quite a lot of time to figure it out; when I did – it actually seemed pretty simple !
Shape wrdTextBox = wrdDocument.Shapes.AddTextbox( Microsoft.Office.Core.MsoTextOrientation.msoTextOrientationHorizontal, 0, 2, 500, 30, ref objRange);
WHERE
wrdDocument
- Active word document object of type : Microsoft.Office.Interop.Word.Document
objRange
- Range object in wrdDocument where I want this text box to be inserted of type : Microsoft.Office.Interop.Word.Range
In order to assign text and style to this text box:
wrdTextBox.TextFrame.TextRange.Text = "I am sitting right inside a textbox in word"; wrdTextBox.TextFrame.TextRange.set_Style(ref my_style);
Important information
You need to add a COM reference to your favorite word object library which should in turn add
- Microsoft.Office.Core
- VBIDE
- Word
If you do not see these added, make sure you have PIAs for office version installed on your machine.
Get Office 2007 PIAs here
Get Office 2003 PIAs here
Related Posts
SVN : Preparing for branching/ Merging process
Preparing your repository for branching and merging can turn into a headache when you do it for the first time. This is a small .. may be obvious .. note to everybody who can get some help
My setup
- SVN Server hosted on linux
- Tortoise SVN as client being used from windows
If you perform following checks before getting into the process of branching and merging, you are going to save a lot of time and efforts trying to figure out errors messages and causes
- Make sure your SVN Server version is above 1.5. If not, UPGRADE. In my case it was 1.4.2 and I upgraded it to 1.6.* from Collabnet
- Make sure your SVN Repository version is upgraded. You can find that out by using following commands
cd /path/to/repo/reponame cd db cat format
i.e. changing to repo/directory/db and looking at contents of format file. For 1.4.*, format file showed 2, which should be 4 for it to be a 1.6.* repository. I had to upgrade the repository version by using
svnadmin upgrade path/to/repo/reponame
- Make sure your SVN Client is equipped to handle features offered by the upgraded SVN Server. I just downloaded version of tortoise svn made for 1.6 version
After these checks, you can choose the model you want to opt for your process and get started.
In my case, I chose mainline development happening in trunk, creating branches after each phase release. Every-time a bug is fixed in a branch, its committed to its corresponding branch. Then from trunk, using TortoiseSVN’s “reintegrate a branch” option, I choose repository URL of branch and follow through steps to finish the merge. It works wonders !
Related posts
SVN : Utility commands
List of SVN utility commands that I needed to use frequently apart from commit and update. Feel free to add to the list
- Know SVN binary path
which svn
- Know SVN server version installed
svnadmin --version
- Know SVN Client server version installed
svn --version
- Create SVN Respository
svnadmin create path/to/repository/reponame
You can then assign permissions to reponame directory like you do on any other directory - Upgrade SVN Respository version
svnadmin upgrade path/to/repository
Related posts
C# Word Automation: Solve “The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)”
Assignment:
Export data in word 2003 format using COM Interop
Problem:
First time export worked just fine. Second time, I received exception “The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)” for “Microsoft.Office.Interop.Word”
Solution:
public class CDocumentExporter
{
static ApplicationClass _word_application;
public static ApplicationClass AppClass
{
get
{
if (_word_application == null)
{
_word_application = new ApplicationClass();
_word_application.ApplicationEvents2_Event_Quit += new ApplicationEvents2_QuitEventHandler(_word_application_ApplicationEvents2_Event_Quit);
}
return _word_application;
}
}
static void _word_application_ApplicationEvents2_Event_Quit()
{
_word_application = null;
}
}//end of class
And just use the CDocumentExporter.AppClass wherever necessary
Important information
You need to add a COM reference to your favorite word object library which should in turn add
- Microsoft.Office.Core
- VBIDE
- Word
If you do not see these added, make sure you have PIAs for office version installed on your machine.
Get Office 2007 PIAs here
Get Office 2003 PIAs here
Related Posts
C# Word Automation: Inserting Images
I was looking for a way to insert images at a bookmark in a word document and thought should document these for future reference
CImage class Definition
public class CImage
{
public string Path
{
get;
set;
}
public decimal Id
{
get;
set;
}
public string Title
{
get;
set;
}
public Image Bitmap
{
get;
set;
}
public bool BusyLoading
{
get;
set;
}
public void GetImage()
{
try
{
BusyLoading = true;
WebRequest req = WebRequest.Create(Path);
WebResponse response = req.GetResponse();
Stream stream = response.GetResponseStream();
Bitmap = Image.FromStream(stream);
stream.Close();
}
catch
{
Bitmap = null;
}
finally
{
BusyLoading = false;
}
}
}
Scenario 1:
You have a path of the image file which is to be inserted
public static void SetBookMark(Document p_objWordDocument, string p_strName,
CImage p_objImage)
{
if (p_objWordDocument.Bookmarks.Exists(p_strName))
{
object objBookMark = p_strName;
p_objWordDocument.Bookmarks.get_Item(ref objBookMark).Range.InlineShapes.AddPicture(p_objImage.Path, ... dozons of object params ...);
}
}
Scenario 2:
When you have the bitmap in memory
public static void SetBookMark(Document p_objWordDocument, string p_strName,
CImage p_objImage)
{
if (p_objWordDocument.Bookmarks.Exists(p_strName))
{
object objBookMark = p_strName;
Clipboard.SetDataObject(p_objImage.Bitmap);
p_objWordDocument.Bookmarks.get_Item(ref objBookMark).Range.Paste();
}
}
Important information
You need to add a COM reference to your favorite word object library which should in turn add
- Microsoft.Office.Core
- VBIDE
- Word
If you do not see these added, make sure you have PIAs for office version installed on your machine.
Get Office 2007 PIAs here
Get Office 2003 PIAs here
Related Posts
Brain munch: Money
Money is a toy introduced by mankind for mankind to be engaged for lifetime.
