7

3

Howdy folks!

We currently use Source Safe in our company, mostly due to our clients requests. As we tend to move away from outsourcing, we're testing more recent alternatives to what we currently have for source control.

I have tested both Git and Mercurial, and even if they seem to be a little complicated to learn/use properly, I guess that in the end the benefits will out-weight any initial discomfort of our team with the tool.

That said, I would like you guys input on the best way to adapt or change this repository structure to better use it with Kiln:

http://www.freeimagehosting.net/uploads/e7c50eac7d.png

We're not tied to any structure for now, this is something I just created now based on what most of our clients use. Given the fact that we are going to probably use Kiln and FogBugz (nice name there, ehehe), any advice on how to make a better structure would be greatly appreciated.

Thanks in advance!

PS. I can't post images... And yes, I've just watched From Paris With Love :P

flag

2 Answers

10

There are so many options of project layout in Kiln which you can choose for your initial structure. This is just one of them. Actually I don't think that it would be optimal variant for you, because I don't know specificity of your folders on the picture. (e.g.: Libraries and Dependencies folders are common across several projects or not. Or: the same team works on the Client and Server projects or not.) But it's neutral and viable layout.

Sample layout (link to full size image)

It's not necessary make different branches for Client and Server projects, you can keep it in the same repository and it will work perfectly, but if you want split responsibilities for your team you can set different permissions for this branches.

If Resources folder is specific for that project you can keep icons, images and other stuff directly in your projects to which they are belong. (i.e. Client, Server). If it's some independent resources (e.g. company logo, ad banner, etc.), probably will be better to create separate repository in Common repository group (repository group and repository have some special meaning in terms of Kiln, please, read this post - Development workflow)

If you provide some additional certain information we could choose more suitable layout for your purposes.

link|flag
Anton, thank you for your answer. It's very helpful, especially with the mockup. I have a couple of questions tho: Everyone here seems to agree that kiln works better with small repositories, like this fogcreek.com/Kiln/i/en-US/LearnMore/… , so why it is not necessary to create different reps. for the Client and Server projects? As for additional info on the folders, here is what I came up with: freeimagehosting.net/uploads/37d7c21060.png – Pai Gaudêncio Apr 7 2010 at 11:16
I don't say that this is not worth to do, I just wanted to say that it's one of the possible options. About updated picture: if "Dependencies" are independent of the main project (MegaFooProject) and you can ship them separatly, maybe it makes sense to create a Kiln level project (like MegaFooProject) for them. (It's just a guess, I actually don't know do you use them in other projects or they are specific only for this one) – Anton Moiseev Apr 7 2010 at 12:09
The dependencies are related to the current project. We use it mostly for 3rd party stuff that has its own installer, like .Net framework for example. – Pai Gaudêncio Apr 7 2010 at 12:30
1

Where does one keep his VS solution file, if the projects within the solution are separated into different repositories?

link|flag
If you name branch "feature1", it not means that in this branch will be only files with that "feature1" implementation. It means that you will make changes concerning only this particular "feature1", but branch will contain whole the project. In this case both branches contain solution file and both projects (Client and Server). But if your projects don't have interdependences maybe you can separate them on to different solutions (but I think it's not properly from logical point of view). – Anton Moiseev Apr 7 2010 at 11:51
So you don't branch by project, but by feature? – Pai Gaudêncio Apr 7 2010 at 12:31
Yes, I don't branch by project, but I branch not only by feature (also by bug fix, by experiment, by developer or just because it's pretty simple and I can do that :) ). Probably there are suitable situations when creating branch per project is justified, but I haven't faced them. – Anton Moiseev Apr 7 2010 at 12:50
That's a nice way of doing it. – Pai Gaudêncio Apr 7 2010 at 12:54
In picture I meant that each branch has it's own aim but each of them still keeps whole solution and all projects (Client and Server). – Anton Moiseev Apr 7 2010 at 12:57
show 2 more comments

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.