c# - Using absolute paths for build dependencies -


currently use source safe , start migration subversion. external sdk(> 500 mb) hold in source safe now, , way move them vss repository.

we have c++ (mostly), c# (many), java (few) projects. hundreds projects. windows platform.

i couple several dependency managers not satisfied:

  • nuget - .net painful c++
  • ivy - not in depth, seems not acceptable c++

first question: can check else? should easy using end developer. best case - simple build within ide.


currently inclined next solution:

allocate used drive, s: , declare 'dev home'.

then place externals here:

s:\sdk\boost\1.30\... s:\sdk\boost\1.45\... s:\sdk\oracle\agile_9.0.0.0\... s:\sdk\ibm\lotus_8.0\... s:\sdk\ibm\lotus_9.0\... s:\tools\nuget\nuget.exe s:\tools\clr\gacutil.exe 

autobuild machine hold mastercopy of 'dev home'. every developer should copy necessary sdks autobuild machine local , create disk subst.

i can't find big problems solution:

  • branches. projects in different branches can contains references different versions of sdk (boost example)
  • version of external component not change frequently, here no hundreds of, say, boost versions.
  • easy developers setup.
  • absolute paths supported tool.
  • no problems disk space if want use not-so-big ssd drive sources. (currently move externals separate drive of symbolic links. other developers black magic)

minor problems:

  • personally me not beautiful solution.
  • disk (s:) can busy
  • can't uses in linux (but not interested in it)

second question: troubles in solution can be?


update 1: why not relative paths.

  1. is externals should in 1 directory sources root? :

:

externals/... branch-root-1.0/project_collection_1/project1/... branch-root-2.0/project_collection_2/... 

here projects should in 1 place or duplicate externals. seems not different solutions absolute path.

  1. externals should in same folder sources root? :

:

branch-root-1.0/externals/... branch-root-1.0/project_collection_1/project1/... branch-root-1.0/project_collection_2/... branch-root-2.0/externals/... 

then externals duplicate in each checkouted branch. +500mb every branch checkout + additional work setup them.

well, acceptable, not see how beter absolute paths. really, want know advantages of relative paths, because uncomforntable absolute paths.

i have gone down path have.... can work. suggest make relative paths , spend time getting projects sorted relative paths.

the problem fixed directory system , source control can branch or have multiple check outs of projects.

also, while subversion good, worth considering mercurial or git. allow number of different kinds of work flows subversion doesn't. takes bit more work thinking how structure repositories, it's worth it. big jump sourcesafe, , experience, many people coming sourcesafe struggle / dislike subversion / git / mercurial initially. require understand version control in bit more detail, thats thing, tool.


Comments

Popular posts from this blog

android - getbluetoothservice() called with no bluetoothmanagercallback -

sql - ASP.NET SqlDataSource, like on SelectCommand -

ios - Undefined symbols for architecture armv7: "_OBJC_CLASS_$_SSZipArchive" -