You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@subversion.apache.org by "Chris Pickett (Jira)" <ji...@apache.org> on 2021/08/22 10:10:00 UTC
[jira] [Commented] (SVN-525) Allow working copies without
.svn/pristine/ cache (a.k.a. "text-base/" files).
[ https://issues.apache.org/jira/browse/SVN-525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17402763#comment-17402763 ]
Chris Pickett commented on SVN-525:
-----------------------------------
The last time I looked at this in 2017, I was able to store binary files as revprops to get around the pristine duplicate issue. But I didn't get further than my notes below that add a binary file and get it back out. This is just a simple proof-of-concept in case this idea is helpful.
{code:sh}
# create foo.mp3.md5 file with fields <sum> <bytes>
echo $(md5sum foo.mp3) $(wc -c foo.mp3) | awk '{print $1" "$3}' > foo.mp3.md5
# store foo.mp3 with bin:<sum> as the property name
svn propset bin:$(awk '{print $1}' foo.mp3.md5) --revprop -r 1 -F foo.mp3
# get the data back out as bar.mp3, stripping the trailing newline that svn adds
svn propget bin:$(awk '{print $1}' foo.mp3.md5) --revprop -r 1 | head -c $(awk '{print $2}' foo.mp3.md5) > bar.mp3
# create bar.mp3.md5 file with fields <sum> <bytes>
echo $(md5sum bar.mp3) $(wc -c bar.mp3) | awk '{print $1" "$3}' > bar.mp3.md5
# the two mp3's are the same
diff foo.mp3 bar.mp3
# the two md5's are the same
diff foo.mp3.md5 bar.mp3.md5
{code}
So possibly even shell scripts could do everything. You might need a shadow set of .md5 files that get committed.
> Allow working copies without .svn/pristine/ cache (a.k.a. "text-base/" files).
> ------------------------------------------------------------------------------
>
> Key: SVN-525
> URL: https://issues.apache.org/jira/browse/SVN-525
> Project: Subversion
> Issue Type: New Feature
> Affects Versions: all
> Environment: other
> Reporter: Ben Collins-Sussman
> Priority: Minor
> Fix For: unscheduled
>
>
> It's possible to make the cached pristine files in .svn/pristine/ optional. Doing so would be a huge storage savings on the client side, and would make Subversion even more compelling as a system for managing medium-large binary files.
> A much more technically thorough explanation of this issue and its background is available in [this 2020-12-29 comment|https://issues.apache.org/jira/browse/SVN-525?focusedCommentId=17256056&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17256056] below.
> (Note that the cached pristine base versions used to be stored in .svn/text-base/, so you'll probably see references to that old location throughout this ticket. Also, there used to be one .svn/ directory per working tree directory; later that was changed to one .svn/ directory at the top of the working tree. Knowing that might also help clarify some of the older comments in this ticket.)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)