X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FWebdav%2FFile.pm;fp=SL%2FWebdav%2FFile.pm;h=54af37a3a862771c094147efbfbc3cc03254476c;hp=313c9ff31ed119a8287a196d03c1d7b631a77de5;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/Webdav/File.pm b/SL/Webdav/File.pm index 313c9ff31..54af37a3a 100644 --- a/SL/Webdav/File.pm +++ b/SL/Webdav/File.pm @@ -58,6 +58,19 @@ sub store { $params{new_version} = 1; } + # Do not create a new version of the document if file size of last version is the same. + if ($params{new_version}) { + my $last_file_size = $last->size; + my $new_file_size; + if ($params{file}) { + croak 'No valid file' unless -f $params{file}; + $new_file_size = (stat($params{file}))[7]; + } else { + $new_file_size = length(${ $params{data} }); + } + $params{new_version} = 0 if $last_file_size == $new_file_size; + } + if ($params{new_version}) { my $new_version = $self->webdav->version_scheme->next_version($last); my $sep = $self->webdav->version_scheme->separator; @@ -153,6 +166,9 @@ C and C are exclusive. If param C is set, force a new version, even if the versioning scheme would keep the old one. +No new version is stored if the file or data size is euqal to the size of +the last stored version. + =back =head1 SEE ALSO