One more thing: I didn't answer your original question, which is: why can't 
you do an atomic commit that recurses into externals?

If I understand correctly, this is the reason: svn:externals may fetch from 
multiple different repositories, even potentially located on different 
servers in different geographic regions. In your case, you are fetching all 
externals from the same repository, but I think the original idea behind 
externals was to construct a working copy of software that has various 
dependencies that come from different places. Rather than requiring you to 
use some other tool to do this, I think it was added to Subversion as a 
convenience feature. It is not feasible to make an "atomic" commit that 
spans across multiple repositories, because each repository has its own 
separate existence. Working with dependencies that all come from the same 
repository, as you are doing (and so are we), is a special case of this 
more general possibility, and Subversion does not treat this special case 
any differently than the general case.

This is why we work in the original locations of the dependencies and use 
the externals only for assembling all the different pieces of a software to 
be compiled. The externals do serve the very useful purpose of recording 
exactly which dependencies are needed and which exact revision of each 
dependency, so that in the future we can checkout a past version and 
recompile it successfully, without losing the knowledge of exactly which 
bits were used in that build.


On Tuesday, July 17, 2018 at 10:09:31 AM UTC-4, Gordon Jess wrote:
>
> I am currently working on projects which are composed of multiple software 
> units (stored on one SVN repository).  Projects are "assembled" by 
> checking-out a combination of these shared software units to the 
> development environment, as svn:externals. 
>
> The externals are defined in the 'Sources' folder as so: 
>
> (local)                    (url) 
> <layer>/software_unit_1    <svn 
> server>/components/software_unit_1/source_code 
> <layer>/software_unit_2    <svn 
> server>/components/software_unit_2/source_code 
> ...                        ... 
> <layer>/software_unit_x    <svn 
> server>/components/software_unit_x/source_code 
>
> and external revisions are only pegged when tagging. 
>
>
> When I make modifications to an external in my working copy, I can commit 
> the changes back to the server by doing 'SVN commit' at its checkout 
> location.  Perfect. 
>
> Because of the dependencies between software units, I'd like to be able to 
> commit a logical set of changes to multiple externals in the same commit. 
>  However, when I try do 'SVN commit' at the folder with the external 
> definitions, the external changes listed in the commit dialog window are 
> all greyed-out. 
>
> Since they are listed in the commit window, it is clear to me that they 
> are from the same repository and be committed in a single commit. 
>
> If my understanding is incorrect I'd be very happy to receive an 
> explanation of why this isn't possible. 
>
> It would greatly improve our current workflow as, not only would it be 
> faster and more straightforward, the current process of individually 
> committing each external separately means our CI server cannot build 
> automatically on commits as changes for all dependencies cannot be 
> committed. 
>
> Thanks and looking forward to heading from you.

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tortoisesvn/7f41bf6d-c81f-4a1b-b59e-b4180528773c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • committin... tortoisesvn+APn2wQf03iZ27psqyjVgcl_WqjGHKiM8YbJ5EIvDseIq3iyr4wjn
    • Re: ... Nathan Hartman via TortoiseSVN
    • Re: ... Nathan Hartman via TortoiseSVN
      • ... Johan Corveleyn via TortoiseSVN
        • ... Nathan Hartman via TortoiseSVN
    • Re: ... tortoisesvn+APn2wQf03iZ27psqyjVgcl_WqjGHKiM8YbJ5EIvDseIq3iyr4wjn
      • ... Johan Corveleyn via TortoiseSVN
        • ... Nathan Hartman via TortoiseSVN
      • ... Nathan Hartman via TortoiseSVN

Reply via email to