BabaNew
BabaNew

Reputation: 976

Keep tags folder outside project folder in subversion

My company uses subversion. We use the tags folder in order to:

Store a picture of what the customer has on it's server, so that if we have to fix a bug or do any activity we know exactly what the client has

Since tags are immutable versions of an application, we think that the use we make of the tags folder is correct.

Now we are moving the repository and thinking about improving it's management a bit; a best practice doubt has arisen about WHERE to put the tags folder.

At the moment, the structure we are using is the classic one, i.e this:

enter image description here

But part of the refactoring/cleaning team suggests to try this way:

enter image description here

In the second structure, it would be clearer which products the customer have. In case of tech support activity, developers would directly look for the customer's folder within tags, no need to know from a colleague which products the client has and then trace those tags by entering all project's folder individually.

Which structure is the clearest and the more maintainable?

Thanks!!!

Upvotes: 0

Views: 30

Answers (1)

Lazy Badger
Lazy Badger

Reputation: 97285

Preface

There are not such thing as "classic layout" of SVN-repository, there are only some recommended for different use-cases with own sets of "pro" et "contra" and you can select any or create own. Anyway, "branches", "tags", "trunk" is just a conventional way to use different parts of repository tree for different purposes - you can build own tree even with own names for your needs and habits.

Face

While second picture seems more nice for eyes, it can have some rake in the grass under the some conditions.

Think about these:

  • Will it be giant monolithic SUPER-REPO with root above ProjectN|Tags folders (with all inherited problems of super-repo - global versioning, shared hooks)? SVN-admin will not thank you for a such headache
  • Will it be a set of independent (tags separated from dev-line) repo? Are you ready for cross-repository commits (it's possible, but... with not obvious tricks)?
  • Will you ready to various particulars, forgotten by me here and now?

From my POV, best (easy, manageable, natural) approach will be using (PEG-ed?) SVN-externals, with which you can add additional custom tree (Client -> Project -> Snapshot) from existing objects outside development-area

Future Reading

Externals Definitions from SVN Book

How to get started with svn:externals? from here


Peg and Operative Revisions from SVN Book

Upvotes: 1

Related Questions