Hello,

Overall question: What is the best way to edit code referenced via 
externals?? I've tried a few ways, with varying success.

*Details:*

Apologies if this is a long post - trying to give as many details up-front 
to get the best responses possible.

The shared libraries are set up and working well in many cases for 
projects, where the shared libs are fairly stable.
Each of the components from the shared "library" are source-code 
components, needing to be included into a project in order to be run as 
intended. 
These components are generally considered "stable"... until features need 
to be added, bugs to be fixed... etc.
When new features are needed, or bugfixes need to be made, then comes the 
question, "How do I edit the external code?"

To edit one of these items, I've noticed a few possibilities:

*1. Edit the item directly in a working copy*
The file/folder created during the checkout and processing of the 
svn:externals property is, essentially, a nested checkout of the specified 
URL at the peg/explicit revision. 
Typically, we have externals going into discrete folders without any local 
items.

The workflow I have tried in this situation for editing HW interface code 
in a shared library:
- Update external WC
- Edit / Test / Commit
- TortoiseSVN prompts to update external's peg revision
--> Answer YES, or manually update external property
- Commit project WC

This approach works fairly well, but isn't immediately obvious to 
developers less experienced with Subversion/TortoiseSVN. 
One main drawback to this approach is when the external has its own 
branches/tags/trunk tree, and a branch/switch is needed to point the WC to 
appropriate folder.
TortoiseSVN does not appear to "pick up" the "switch" as well as it detects 
the revision # change mentioned above. ( *if this is being addressed in a 
bugfix, I'd like to know... =) *)

*2. Editing the item referenced by external at its source*
While this will always "work," it seems quite cumbersome, and difficult to 
get other (less-experienced) developers to follow.

Where the shared code needs to be included in another project to be tested 
on-target (especially for HW interfaces), I envision the workflow looking 
like:
- Edit the code in question in a project's WC (maybe even in the external 
directory)
- Test (hopefully!)
- Checkout the library item (branching if needed)
- Manually copy the changes from the project's WC to the library's WC, then 
commit
- Change project WC's svn:externals property, then update/test/commit

*3. Remove external, copy item to project, modify, copy to library, 
recreate external*
Not kidding... one developer actually went through the hassle of doing 
this...

Does anyone else run into this situation, and/or have a better way of 
managing it?

Thank you for your time and feedback!

Thanks,
Paul P.

-- 
You received this message because you are subscribed to the Google Groups 
"TortoiseSVN" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tortoisesvn+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tortoisesvn/8c35a8d1-b28c-4328-a868-8fb109299330%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to