Aaron Jensen

Sponsors

The Lounge

Wicked Cool Jobs

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Machine.Specifications (MSpec) has moved (and git rocks)

EDIT:The actual clone url is here, the original link is to the github page. Sorry for the confusion:

git clone git://github.com/machine/machine.specifications.git

I just completed breaking Machine.Specifications into its own repository. It is now here:

http://github.com/machine/machine.specifications

Why did I do this? Many reasons, for one, git is better suited for many smaller repositories. There is support for submodules so that you can combine and nest repositories. As soon as I finish breaking out all of the various pieces of Machine I will make Machine the root of all Machine projects so you only have to grab the one. Also, having MSpec in its own repository allows you to keep its history in one place. This is helpful if you want to listen to/care about changes only to MSpec and not the rest of the Machine library.

If you'll notice, Machine.Specification's commit log is fully intact. Not only that, but it doesn't have any of the commits for non-related libraries. Yep, I was able to cleanly split it into its own branch and preserve history. Like I said, git rocks. How did I do this? Check out this awesome guide. After following that guide, I used a script to prune empty commits. Quite painless and powerful. I love git.

Oh and be sure to take a look at the latest stuff in there, Alexander Groß added a ReSharper 4.1 and 4.5 runner and Adam Tybor added TeamCity support to the console runner. Thanks guys!


Posted Sat, Mar 7 2009 8:22 AM by aaronjensen
Filed under: ,

[Advertisement]

Comments

DotNetShoutout wrote Machine.Specifications (MSpec) has moved (and git rocks) - Aaron Jensen
on Sat, Mar 7 2009 1:37 PM

Thank you for submitting this cool story - Trackback from DotNetShoutout

Jay Turpin wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Mon, Mar 9 2009 10:58 AM

Not sure if I'm just being a dumb git newbie, but I get the following error when trying to clone the repository:

$ git clone github.com/.../machine.specifications

Initialized empty Git repository in c:/Projects/machine.specifications/.git/

fatal: github.com/.../machine.specifications/info/refs not found: did

you run git update-server-info on the server?

aaronjensen wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Mon, Mar 9 2009 11:27 AM

Hey Jay,

That's my fault. I linked to the github page not the github repository. If you click the link you can see the clone url:

git clone git://github.com/machine/machine.specifications.git

Thanks,

Aaron

Jay Turpin wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Mon, Mar 9 2009 1:31 PM

Thanks! I got further, but now I get this error (I have to use the http: protocol instead of git: since I am behind a corporate proxy server):

$ git clone http://github.com/machine/machine.specifications.git">github.com/.../machine.specifications.git

Initialized empty Git repository in c:/Projects/machine.specifications/.git/

error: File 0000000000000000000000000000000000000000 (http://github.com/machine/

machine.specifications.git/objects/00/00000000000000000000000000000000000000) co

rrupt

Getting pack list for http://github.com/machine/machine.specifications.git">github.com/.../machine.specifications.git

Getting alternates list for http://github.com/machine/machine.specifications.git">github.com/.../machine.specifications.git

aaronjensen wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Mon, Mar 9 2009 3:28 PM

Jay,

Are you able to clone other git repositories? What version of git are you using? This is likely either a firewall issue or a client issue. I was able to clone using http.

I'm using msysgit 1.6.0.2.1172.ga5ed0

Jay Turpin wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Mar 10 2009 12:34 AM

I'm using the latest version of msysgit. I have been able to clone ironruby with no issue - using both http and git protocols. I retried it from home this evening and got the same results using the http protocol, though the git protocol worked fine.

aaronjensen wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Mar 10 2009 1:34 AM

Odd. Until you mentioned it I didn't even know it was possible to clone via http, so I'm a bit clueless :) Glad you were able to clone it from home though.

David Mohundro wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Mar 10 2009 1:48 PM

Github apparently has a few problems with cloning repositories via http - I've had problems with this on other repositories as well, but it always seems to work via the git protocol.

Louis Salin wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Mar 10 2009 3:32 PM

Hey Aaron,

We are trying to use MSpec to internally test our silverlight application. I downloaded the source and ported Machine.Specifications and Machine.Specification.Reporting so far, and it looks like we are going to have to create our own runner.

I was wondering if you'd be willing to maintain a Silverlight version of MSpec? :) I'm more than willing to help out a bit with that. However, I don't know anything about git. You can contact me at louis (dot) phil (at) gmail (dot) com.

Thanks for the great BDD framework!

Kyralessa wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Sep 8 2009 3:29 PM

My boss is having us try out mspec.  It's pretty nifty, once you create a few snippets and macros to ease the pain of typing everything.

Since I couldn't do a .ShouldBeGreaterThanOrEqualTo in v0.2, I downloaded the latest version from git so I could add it myself to our in-house copy.  And all of a sudden all the places where I used ConcernAttribute had ugly red squigglies.  Where did it go?

Searching back through the git commits, I found that you'd renamed Concern to Subject.  Fair enough.  But in the future, could you maybe use the ObsoleteAttribute in cases like that?  It's a lot easier to figure out what the new name is if the old one points to it instead of just giving an error.

Kyralessa wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Sep 8 2009 3:50 PM

Argh.  And now the extension methods don't work anymore, for no apparent reason.  Surely you have working projects that use mspec, and that broke on more recent versions in a similar fashion.  Do you have a migration guide anywhere?

Kyralessa wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Sep 8 2009 4:17 PM

OK, figured out that the extension methods moved into the NUnit and XUnit namespaces.  Well and good.  Definitely need some ObsoleteAttribute, though!  :)

aaronjensen wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Tue, Sep 8 2009 4:20 PM

Hi Kyralessa,

Sorry about all the mess. MSpec was in heavy turmoil in its early days while I experimented with syntax. There isn't a migration guide that I know of, I should do another post with the current way things are since they've pretty much stabilized. The problem you're seeing right now is that you need to add a reference to the Machine.Specifications.NUnit assembly. This was added so that XUnit assertions can be used instead of NUnit if you so desired. In reality, this doesn't serve much purpose and I plan to do away with the NUnit (or XUnit) dependencies.

I'll try and do better about obsoleting or at least documenting changes if I make any drastic changes in the future. Also, if you have any other issues with it, feel free to ping me on twitter @aaronjensen so I can help.

Henning Anderssen wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Fri, Sep 18 2009 3:32 AM

Is there any plans for a silverlight version of MSpec?

aaronjensen wrote re: Machine.Specifications (MSpec) has moved (and git rocks)
on Fri, Sep 18 2009 11:32 AM

Hi Henning,

I don't have any plans to write one, but I doubt it would be much work (unless I use APIs unavailable on SL, which may be the case) if someone wanted to take it on.

Aaron Jensen wrote Machine.Migrations changes
on Sat, Oct 24 2009 5:56 PM

Jacob first introduced Machine.Migrations over a year ago. Since then, it's been a solid part of

Add a Comment

(required)  
(optional)
(required)  
Remember Me?
Devlicio.us