Hi Perry,
I use Perforce (P4) - similar (but different). Not sure what best practice is 
for TFS repositories is but with P4 and other Source Control (SC) systems 
something like the following should work.

//function/branch/path/item

1. Starting with a functional area - a project or a defined set of artefacts 
which make a up a particular system (eg Payroll)
2. branch - this is usually MAIN (eg the current, main or head version) - we 
occasionally have different branch versions for Australia & NZ or for a release 
branch. A commercial software developer would probably keep their major 
releases in different branches.
3. path - you should probably just start at the account directory. So if your 
complete path to the payroll account was: /usr/uvaccs/dev/perry/payroll/.. you 
would start at the *../payroll/..* level of the path and ignore the stuff 
before it. 
Not sure how TFS maps to the workspace, but I guess that you are able to give 
it a relative path like most SC systems.
4. The item under control.

So you might end up with //Payroll/MAIN/PAYROLL/PAY.BP/PRINT.PAYSLIPS

Also, not sure how TFS handles case sensitivity - this would be an issue if it 
regards Payslip & PAYSLIP as the same item.

As far as hashed item go: convert everything you need to control to type 19 
directory files (except dictionaries - see below). 
Why? Because you should only need to do this in dev. For all other environments 
the items should only be copied in (deployed) from a release file - so will be 
able to be plonked into hashed files by UV copy.

If you can't convert them for some reason (like you have binary in them?!), 
you'll probably need to put a trigger onto your hashed files to manage the 
controlled items.

Dictionaries - have to be hashed because otherwise I-types won't compile or 
work. So, I have a trigger for the dictionary that writes out the item to a 
type 19 file under source control. It truncates the I-type attributes after 
about att 10 so you don't get the binary in the repository. It also manages 
which SB+ items get put in and out of SC.
If the item is not checked out from SC for edit before you try to edit the 
dictionary, the trigger will rollback the copy and gracefully tell you that you 
need to check out the item before editing it. On save it updates the type 19 
copy after which it needs to be checked in.
In my case I have 1 file set up for all the dictionary items. I use an assigned 
key and a lookup file to manage them. The thinking behind it was to reduce the 
number of folders to manage in SC. In practice it probably doesn't matter, if 
you have lots of dictionary folders or one folder with lots of items as we do.

Release strategy. I use a program, but we also looked at "make" and the 
Perforce equivalent. These are nice because they can check dependencies - 
however, it was overkill for us so I just have a program that copies everything 
from a 'drop' location into the target system and compiles and runs any setup 
programs.

Hope that helps,
Stuart

-----Original Message-----
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Perry Taylor
Sent: Saturday, 20 August 2011 00:57
To: U2-Users List
Subject: [U2] [UV] Microsoft Team Foundation Server for Source Control

Has anyone had any experience using Microsoft's Team Foundation Server for 
source control with UniVerse on a Linux server?  I have the command line client 
functional and talking to the TFS server.  I know I'll have to write some kind 
of interlude to manage those items in hashed files to get them out into the 
file system where they will be visible to the TFS client and to do the reverse 
upon checkout.  What I'm looking for are some ideas for organizing in the TFS 
repository.  Also, we're looking for a one-button deployment solution to be 
able to deploy our Windows/.NET software to the respective Windows servers 
along with the UniVerse software to the UniVerse server(s), run processes to 
create/delete files, index, etc. and compile and catalog BASIC programs.  I 
know I'll probably have to build this "thing" to make this happen as I 
seriously doubt there is anything available off the shelf capable of doing 
this.  Anyone been down this path?

Thanks.
Perry Taylor
Zirmed, Inc.


CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for 
the sole use of the intended recipient(s) and may contain confidential and 
privileged information.  Any unauthorized review, use, disclosure or 
distribution is prohibited. ZirMed, Inc. has strict policies regarding the 
content of e-mail communications, specifically Protected Health Information, 
any communications containing such material will be returned to the originating 
party with such advisement noted. If you are not the intended recipient, please 
contact the sender by reply e-mail and destroy all copies of the original 
message.
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users



_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to