Content deleted Content added
Reverted 1 edit by 190.123.41.207 (talk): Unexplained content removal |
Rescuing 4 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
||
Line 235:
A known problem in Subversion affects the implementation of the file and directory rename operation. {{As of|2014}}, Subversion implements the renaming of files and directories as a "copy" to the new name followed by a "delete" of the old name. Only the names change, all data relating to the edit history remains the same, and Subversion will still use the old name in older revisions of the "tree". However, Subversion may become confused when a move conflicts with edits made elsewhere,<ref>{{Cite web |url=http://subversion.tigris.org/issues/show_bug.cgi?id=898 |title=Implement true renames |access-date=2007-05-11 |archive-date=2002-12-01 |archive-url=https://web.archive.org/web/20021201064344/http://subversion.tigris.org/issues/show_bug.cgi?id=898 |url-status=dead }}</ref> both for regular commits and when merging branches.<ref>[http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge.advanced.moves Advanced Merging]</ref> The Subversion 1.5 release addressed some of these scenarios while others remained problematic.<ref>[http://subversion.apache.org/docs/release-notes/1.5.html#copy-move-improvements Copy/move-related improvements in Subversion 1.5]</ref> The Subversion 1.8 release addressed some of these problems by making moves a first-class operation on the client, but it is still treated as copy+delete in the repository.<ref>[http://subversion.apache.org/docs/release-notes/1.8.html#moves Working copy records moves as first-class operation in Subversion 1.8]</ref>
{{As of | 2013}}, Subversion lacks some repository-administration and management features. For instance, someone may wish to edit the repository to permanently remove all historical records of certain data. Subversion does not have built-in support to achieve this simply.<ref>
Subversion stores additional copies of data on the local machine, which can become an issue with very large projects or files, or if developers work on multiple branches simultaneously. In versions prior to 1.7 these <code>.svn</code> directories on the client side could become corrupted by ill-advised user activity like global search/replace operations.<ref>{{Cite web|url=https://stackoverflow.com/a/579442|title=Subclipse - Repair SVN Checksum}}</ref> Starting with version 1.7 Subversion uses a single centralized {{mono|.svn}} folder per working area.<ref>[http://subversion.apache.org/docs/release-notes/1.7.html#wc-ng Working Copy Metadata Storage Improvements (client)]</ref>
Subversion does not store the modification times of files. As such, a file checked out of a Subversion repository will have the 'current' date (instead of the modification time in the repository), and a file checked into the repository will have the date of the check-in (instead of the modification time of the file being checked in). This might not always be what is wanted.<ref>[http://subversion.tigris.org/issues/show_bug.cgi?id=1256 Issue 1256] {{Webarchive|url=https://web.archive.org/web/20130903215908/http://subversion.tigris.org/issues/show_bug.cgi?id=1256 |date=2013-09-03 }} at Tigris.org</ref>
To mitigate this, third-party tools exist that allow for preserving modification time and other filesystem meta-data.<ref>[http://sourceforge.net/projects/freezeattrib/files/ FreezeAttrib (saves/restores file attributes using properties)]</ref><ref>
▲To mitigate this, third-party tools exist that allow for preserving modification time and other filesystem meta-data.<ref>[http://sourceforge.net/projects/freezeattrib/files/ FreezeAttrib (saves/restores file attributes using properties)]</ref><ref>[http://fsvs.tigris.org/ FSVS (Fast System VerSioning)]</ref>
However, giving checked out files a current date is important as well — this is how tools like [[make (software)|make(1)]] will take notice of a changed file for rebuilding it.
Subversion uses a centralized [[revision control]] model. [[Ben Collins-Sussman]], one of the designers of Subversion, believes a centralised model would help prevent "insecure programmers" from hiding their work from other team members during development.<ref>[http://blog.red-bean.com/sussman/?p=96 Programmer Insecurity @ iBanjo<!-- Bot generated title -->]</ref> Some users of version control systems see the centralised model as detrimental; famously, [[Linus Torvalds]] attacked Subversion's model and its developers.<ref>[https://www.youtube.com/watch?v=4XpnKHJAok8 Google Tech Talk video] and its [https://web.archive.org/web/20110725034129/https://git.wiki.kernel.org/index.php/LinusTalk200705Transcript transcript]</ref>
Subversion often does not deal well with the [[Unicode equivalence#Normalization|filename normalization]] performed by the [[HFS+]] filesystem. This can cause problems when files with accented characters in their names are added to the repository on a non-HFS+ filesystem and the repository is then used with HFS+.<ref>
===Subversion tags and branches===
|