Ok.. This is a flight of fancy I had a few months ago, but its still in my head, so I thought I would let it free on the web.
Imagine an IDE where as you type in new code you not only get told if the code compiles, but also if the unit tests pass with this new code.
IDEs now hold a parsed version of your code so they can highlight compiler errors as you type. Its not that big a step to then interpret the tests over the in memory parse-tree to see how the code will execute. The IDE could keep track of which lines of code are executed by which test easily enough. Then it would be a case of only re-interpreting the tests that are potentially effected by each edit.
This would be the ultimate in rapid feedback :)
Nigel Thorne's software development blog, focusing on finding simple solutions to real work problems.
Thursday, May 05, 2005
Rapid feedback
Wednesday, May 04, 2005
.Net on Rails?
Castle.Net is a bunch of libraries for everything from IoP to 'Castle on Rails'. There are a couple of tutorials on Code Project (http://www.codeproject.com/csharp/IntroducingCastleII.asp).
I intend to have a play with it, so expect to see more posts on Castle in the future. :)
I intend to have a play with it, so expect to see more posts on Castle in the future. :)
Atom Feed
I have an atom feed on this site, but I just noticed that you can't get at the link easily due to the way the URLs are hidden on my site.
Here is a link you can use until the issue is fixed.
http://web.aanet.com.au/nigelthorne/blog/atom.xml
Here is a link you can use until the issue is fixed.
http://web.aanet.com.au/nigelthorne/blog/atom.xml
From the guys that wrote Ruby On Rails
Ruby on Rails was an offshoot from a product these guys made for project management. Thoday they released a site aimed at life management.
http://www.backpackit.com/
It's free to join... and has so much potential!
Check it out.
http://www.backpackit.com/
It's free to join... and has so much potential!
Check it out.
Tuesday, March 29, 2005
Version the file system not the files
Most version control software misses the point. They version the files fine. Most fail to sufficiently version the file system.
When you are working on a codebase you want to be able to write new classes, rename them, move them to other assemblies, etc. A single class (throughout it's life) may have lived in various diffrent directories, in varously named files.
SourceSafe allows you to rename files or directories, but once they are renamed it is as if they have always had that name. If you ask for an old version, it still has the new name. Not what you want.
Subversion is better. It remembers the file's filename and content, so getting a version as of a past date works correctly. However subversion still required you to use subversion to rename the file otherwise it can't track the change. What if you are using a refactoring tool or IDE that does the file renaming for you?
What is needed is a version control system that watches the changes you are making to the filesystem as a whole and tracks these changes for later. Renaming a file on the hard drive should be enough for the verison control software to know the file was renamed.
Last weekend I have started a small application that attempts to achieve this goal. SVNMirror.
SVNMirror mirrors all changes made to a directory (and all subdirectories) in subversion. Here is how it works...
SVNMirror watches a source directory for changes (using the .Net FileSystemWatcher classes). SVNMirror is also given a versioned directory (which would usually be your working directory if you were using Subversion in the standard way). When a change occures the change gets mirrored in the versioned directory.
For example:
* You create a new file in your source directory. SVNMirror copies the file to your versioned directory and tells subversion to add the file to version control.
* You modify a file in your source directory. SVNMirror copies the change to your versioned file.
* You delete a file in your source directory. SVNMirror marks the file as deleted in subversion.
...
etc.
There are still a few issues with renaming files that are not comitted to the database yet, but other than that the proof of concept works fine. :)
I'll post a link to the page once I make a site for the project.
When you are working on a codebase you want to be able to write new classes, rename them, move them to other assemblies, etc. A single class (throughout it's life) may have lived in various diffrent directories, in varously named files.
SourceSafe allows you to rename files or directories, but once they are renamed it is as if they have always had that name. If you ask for an old version, it still has the new name. Not what you want.
Subversion is better. It remembers the file's filename and content, so getting a version as of a past date works correctly. However subversion still required you to use subversion to rename the file otherwise it can't track the change. What if you are using a refactoring tool or IDE that does the file renaming for you?
What is needed is a version control system that watches the changes you are making to the filesystem as a whole and tracks these changes for later. Renaming a file on the hard drive should be enough for the verison control software to know the file was renamed.
Last weekend I have started a small application that attempts to achieve this goal. SVNMirror.
SVNMirror mirrors all changes made to a directory (and all subdirectories) in subversion. Here is how it works...
SVNMirror watches a source directory for changes (using the .Net FileSystemWatcher classes). SVNMirror is also given a versioned directory (which would usually be your working directory if you were using Subversion in the standard way). When a change occures the change gets mirrored in the versioned directory.
For example:
* You create a new file in your source directory. SVNMirror copies the file to your versioned directory and tells subversion to add the file to version control.
* You modify a file in your source directory. SVNMirror copies the change to your versioned file.
* You delete a file in your source directory. SVNMirror marks the file as deleted in subversion.
...
etc.
There are still a few issues with renaming files that are not comitted to the database yet, but other than that the proof of concept works fine. :)
I'll post a link to the page once I make a site for the project.
Subscribe to:
Posts (Atom)