Showing posts with label subversion. Show all posts
Showing posts with label subversion. Show all posts

My software tools list



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2007/08/current-configuration/

You should be redirected in 2 seconds.



Below is a table of my current software configuration. If you notice a lot of "I switched from ..." statements, keep in mind that I am a programmer who likes shiny things.

Category Currently using Comments
Operating System Ubuntu 8.04, Windows XP, Windows Vista Work Desktop: Ubuntu Hardy via coLinux on Windows XP and Cygwin when needed.
Home Laptop: dual-boot Windows Vista with Cygwin and Ubuntu Hardy
Home Desktop: Ubuntu Hardy

I am in the process of migrating from Windows to Linux. My first Ubuntu install was in 2007 (dual-boot) and I got my first Windows-free machine in 2008. Currently I am using Cygwin and coLinux when on Windows. Cygwin integrates better with Windows applications, but coLinux is super fast and allows you to run a full Linux distro on top of Windows. Windows does have some advantages, but overall I prefer Linux.

I don't have enough experience with OSX to draw any authoritative conclusions, though I think Mark Pilgrim has biased me against Apple. Also, I think Linux's free as in beer (and somewhat related free as in speech) characteristics vs. Mac's expensive (and somewhat related proprietary) characteristics resonate with the cheap engineer in me.

Additional Linux vs. Mac commentary from some A-list geeks:
Window Manager wmii Dynamic, tiling, scriptable window manager that doesn't require a mouse. It sucks less.

I switched from ratpoison at the same time I started using coLinux because running native Linux allowed me to use any Linux window manager as well.

Recently, some have switched from wmii to xmonad, the new Haskell tiling window manager. It has some nice features over wmii, including dual head support, but after a brief excursion, I slightly prefer wmii's way of doing things.

If you're a hard core Lisper, stumpwm is the window manager for you. It has a REPL. This one seems a little too hard core for me, especially since I don't know Lisp (yet).

Other options: ion, dwm, awesomewm

Editor/IDE GNU Emacs Switched from Eclipse in 2007. It was a slow transition, but worth it. I think Emacs is definitely worth the investment if you do a lot of coding.

Terminal urxvt +
screen
urxvt supports xft (anti-aliased) fonts, real transparency (not that I actually use transparency with wmii), and fading (which I do use with wmii) and it is much lighter than gnome-terminal or konsole. screen allows me to switch terminal sessions without ugly tabs, attach to remote sessions, search through the scrollback buffer, and more.

Version Control System Mercurial Switched from Subversion in June 2007. The merging in Mercurial is very nice and can be done without thinking. I do miss Subversion/Subclipse's revision history viewer, file compare, and ability to isolate files apart from changesets.

Compiled Language C Wouldn't mind learning C++. Although, Linus doesn't like it.

Dynamic Language Python 2.5 My love for python is strong. I switched from Perl in 2005 and have no regrets. Object-oriented, easy to read (no more TIMTOWTDI), and smart people use it. I also want to learn Javascript 2 becuase it is the "Next Big Language" and Lisp because it is the "most powerful language".

On Python vs. Ruby: from what I've read, I characterize Ruby as the more expressive language more similar to Perl (than Python is) and Python as the more regimented language. Since I like regimented, I like Python.

On Python vs. Lisp: I've concluded that I lack the intelligence to harness enough of Lisp's power to counteract its non-practicality (e.g. lack of libraries).

Some other links:
Paul Graham: Python is getting closer to Lisp (2002)
Paul Prescod: no it isn't

Web Framework Django I haven't tried much else, but Django is pretty cool.

Here are some links:
Ian Bicking: There's so much more than Rails (2005), What PHP deployment gets right (2008)

Web Browser Conkeror Not to be confused with Konqueror, Conkeror is an emacs-like, keyboard driven, scriptable, Mozilla-based web browser. I've used it almost full time since January 2008. It is still considered alpha stage software so there are a number of bugs. However, it is still pretty sweet. I use Firefox as a backup (and IE Tab for Launchcast and Netflix on Windows). Unfortunately, one of the annoying things in Firefox 2 is present in Conkeror as well-- memory leaks. Based on this Mozilla article and some brief personal experience, Firefox 3 has made fixes in this area. It would be nice if Conkeror could benefit from the Firefox 3 fixes.

Email/PIM Undecided Thunderbird?, Evolution?, Mutt?, Gnus?, Alpine?, Gmail?, Claws Mail?,

I currently use Microsoft Outlook with an Exchange Server at work. Evolution supports Exchange Server through Outlook Web Access (OWA), but I couldn't get it to work for me. Thunderbird (and I assume others) support Exchange through IMAP, but this is only available at work by special request.

Links:
Adam Gomaa chooses Claws Mail over Thunderbird, Evolution, Mutt, and Gnus (2007)

PDF Viewer KPDF Preferred over Gnome's Evince
Screen Capture KSnapshot Courtesy of Mark Pilgrim's essentials list
Graphical diff/merge KDiff3 I started using KDiff a while ago on Windows and have always liked it. I'm thinking, though, since I'm an Emacs person, I ought to use Ediff.
Updated 7/2/2008
[Read the full post...]

How to show diffs with Subclipse



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2007/04/how-to-show-diffs-with-subclipse/

You should be redirected in 2 seconds.



I want to show revision history diffs in SVN/Subclipse/Eclipse. I looked in the "History" view, but this is not where to find it. Instead, right-click on your file in the "Navigator" view, select "Compare With" > "Revision...". Then double-click on a revision to compare to. The example screenshot is from Mark's blog.
[Read the full post...]

How to setup a subclipse project to branch/tag



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2007/03/how-to-setup-subclipse-project-to/

You should be redirected in 2 seconds.



I've read that branching/tagging is one of the nice features of SVN (See Mark Phippard's blog and the subversion book). However, it took me a little while to figure out how to setup my directory structure with the recommended "trunk", "branches", and "tags" folders. These are my basic step-by-step notes for how I setup my Subclipse project and then created a branch. This assumes you've already installed Subclipse and set up a repository. If you have not done that, see How to install Subversion (SVN) with Eclipse on Windows.
  1. Add your Eclipse project to the repository in a "trunk" folder
    • Start with an Eclipse project named "myproject"
    • In the "Navigator" window, right-click on your project, select "Team" > "Share Project..."
    • Select "SVN" and click "Next"
    • Select your repository. (This tutorial assumes it is located at "svn://localhost".) Click "Next".
    • In the "Enter Folder Name" dialog, select the "Use specified folder name" option and enter "myproject/trunk". The "URL:" box should show something like "svn://localhost/myproject/trunk". Click "Next".
    • Click "Finish". A new dialog will open. Select the files to commit, enter a comment, and click "OK". I got the following output in the "Console" window:
          Filesystem has no item
      svn: URL 'svn://localhost/myproject/trunk' non-existent in that revision
      
          Bad URL passed to RA layer
      svn: URL 'svn://localhost/myproject' non-existent in revision '234'
      
      mkdir -m "Initial import." svn://localhost/myproject
      mkdir -m "Initial import." svn://localhost/myproject/trunk
      checkout -N -r HEAD svn://localhost/myproject/trunk
          Checked out revision 236.
      add -N C:\path\to\myproject\.settings
          A         C:/path/to/myproject/.settings
      add -N C:\path\to\myproject\.settings\org.eclipse.cdt.core.prefs
          A         C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefs
      add -N C:\path\to\myproject\.cdtbuild
          A         C:/path/to/myproject/.cdtbuild
      add -N C:\path\to\myproject\.settings\org.eclipse.cdt.managedbuilder.core.prefs
          A
      C:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs
      add -N C:\path\to\myproject\.cdtproject
          A         C:/path/to/myproject/.cdtproject
      add -N C:\path\to\myproject\.project
          A         C:/path/to/myproject/.project
      commit -m "Initial import." C:/path/to/myproject/.cdtbuild C:/path/to/myproject/.cdtproject C:/path/to/myproject/.project C:/path/to/myproject/.settings C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefs C:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs
          Adding         path/to/myproject/.cdtbuild
          Adding         path/to/myproject/.cdtproject
          Adding         path/to/myproject/.project
          Adding         path/to/myproject/.settings
          Adding         path/to/myproject/.settings/org.eclipse.cdt.core.prefs
          Adding         path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs
          Transmitting file data ...
          Committed revision 237.

  2. Create "branches" and "tags" folders in the repository
    • Switch to the "SVN Repository Exploring" perspective. (From the "Window" menu, select "Open Perspective" > "Other...". Select "SVN Repository Exploring" and click "OK".)
    • In the "SVN Repository" window, expand the tree, and right-click on "myproject", select "New" > "New remote folder".
    • In the "Create a new remote folder" dialog, expand the tree and select "myproject". For "Folder name:", enter "branches". Click "Next".
    • Enter a comment and click "Finish".
    • Expanding the "myproject" folder now shows the "branches" and "trunk" subfolders.
    • I got the following output in the "Console" window:
      mkdir -m "Created branches folder." svn://localhost/myproject/branches
    • Repeat these steps to create a "tags" folder.

  3. Create a branch
    • Switch back to the previous perspective.
    • Commit any changes you want in the branch.
    • In the "Navigator" window, right-click your project and select "Team" > "Update"
    • Right-click your project and select "Team" > "Branch/Tag..."
    • In the "Copy (Branch/Tag) dialog, in the "To URL:" textbox, enter "svn://localhost/myproject/branches/mybranch". (The "From WC at URL:" box should read "svn://localhost/myproject/trunk".)
    • Leave the "HEAD revision in the repository" option selected, enter a comment, and click "OK".
    • I got the following output in the "Console" window:
      copy -rHEAD svn://localhost/myproject/trunk svn://localhost/myproject/branches/mybranch
  4. Switch your working copy to the branch
    • You can now switch your working copy between the trunk and the branch.
    • Right-click your project and select "Team" > "Switch to another Branch/Tag..."
    • In the "To URL:" textbox, enter "svn://localhost/myproject/branches/mybranch". Click "OK".
    • I got the following output in the "Console" window:
      switch svn://localhost/myproject/branches/mybranch C:/path/to/myproject -rHEAD
          At revision 239.
  5. You should now be able use the features discussed in Enhanced Support for Branches and Tags in Subclipse
Branching steps were taken from How to branch with Subclipse.

[Read the full post...]

How to install Subversion (SVN) with Eclipse on Windows



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2007/03/how-to-install-subversion-svn-with/

You should be redirected in 2 seconds.



Subversion looks to be the new version control system of choice in the open source community, supplanting CVS which supplanted RCS. This article, Why Subversion Over CVS, gives some reasons to choose Subversion over CVS. Many people also choose subversion over commercial products such as ClearCase and Visual Source Safe. The authors of "Windows Developer Power Tools" (O'Reilly 2006) write:

Subversion is our favorite version-control system, and we definitely recommend it above all others (including commercial products) in most scenarios. There may be certain areas where commercial systems excel, but for overall version control, it's tough to beat Subversion.

Step by step instructions
Here are my notes for installing Subversion, TortoiseSVN (a Subversion client which integrates with Windows Explorer), and Subclipse (the plugin for Eclipse integration) on Windows. This assumes you already have Eclipse installed. Also, these notes are geared towards version control for individual use as opposed to team use.
  1. Install Subversion and TortoiseSVN using SVN 1-Click Setup
    • Go to http://svn1clicksetup.tigris.org/, click "Download the latest version", run the installer, and accept all the defaults.
    • This is a Windows installer used "to simplify the process of setting up a Subversion repository on a Windows-based computer. Svn1ClickSetup takes a user through the steps necessary to install the Subversion command-line utilities and TortoiseSVN, as well as creating a repository and initial project." --from svn1clicksetup.tigris.org
    • To check that something went right, go to Windows Explorer and right-click on a file. You should see the "TortoiseSVN" context menu item.

  2. Install the Subclipse plugin using the instructions at http://subclipse.tigris.org/install.html.

  3. Define the SVN Repository
    • In Eclipse, from the "Window" menu, select "Open Perspective" > "Other...". Select "SVN Repository Exploring" and click "OK".
    • Inside the "SVN Repository" window, right-click in the big empty space, and select "New" > "Repository Location...".
    • In the "Url:" box, type "svn://localhost". Click "Finish". (Use this url to connect to the repository hosted on the SVN server on your local machine created using svn1clicksetup. I got this tip from http://james.cooley.ie/2006/12/01/version_control_with_eclipse_on_windows.html. If you want to use a repository on another server, then point to that location instead. "file://, http://, or https:// are the other protocols that can be used.)

  4. Add an Eclipse project to the repository
    • In the "Navigator" window, right-click on a project and select "Team" > "Share Project...".
    • Select "SVN" and click "Next"
    • Your repository, "svn://localhost", (which you added in step 3) should show up here. Click "Next".
    • Click "Next" again. Click "Finish". I got the following output in the "Console" window:
          Filesystem has no item
      svn: URL 'svn://localhost/my_project' non-existent in that revision
      
      mkdir -m "Initial import." svn://localhost/my_project
      checkout -N -r HEAD svn://localhost/my_project
          Checked out revision 5.
    • Select the files you want to add and click "OK". I got the following output in the "Console" window:
      add -N C:\path\to\my_project\test.py
          A         C:/path/to/my_project/test.py
      commit -m "Initial import." C:/path/to/my_project/test.py
          Adding         path/to/my_project/test.py
          Transmitting file data ...
          Committed revision 6.
    • See this article for more information: How to use Subversion with Eclipse

  5. Modify and commit a file
    • Edit one of the newly added files and save it.
    • In the "Navigator" window, right-click on the file, and select "Team" > "Commit...".
    • Enter a comment and click "OK". I got the following output in the "Console" window:
      commit -m "test" C:/path/to/my_project/test.py
          Sending        path/to/my_project/test.py
          Transmitting file data ...
          Committed revision 7.
      
  6. Show the history for a file
    • In the "Navigator" window, right-click on the file, and select "Team" > "Show History".
    • The "History" window should open showing the revisions of your file. Double-click on a revision to open it or right-click for other options.

Related posts:

Other resources

[Read the full post...]

About

This is my *OLD* blog. I've copied all of my posts and comments over to my NEW blog at:

http://www.saltycrane.com/blog/.

Please go there for my updated posts. I will leave this blog up for a short time, but eventually plan to delete it. Thanks for reading.