You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Bo Berglund <bo...@gmail.com> on 2021/04/24 14:52:00 UTC

Does a WC contain all log messages?

If I check out and work on a project I know that the .svn dir contains "stuff"
related to the subversion system.
But is it like with GIT that it contains "everything"? I.e. all older revisions
too?

The reason I ask is that I was looking at svn log in order to figure out how to
see what had happened earlier on the project.

There are two different ways:
1) Connect to the server and get the log info:
svn log -v <URL>

2) Run the command in the working copy dir:
svn log -v

I don't know if the second incarnation will only get whatever I have done myself
when working on the project or if it somehow can show the complete log history.
All projects I have on my system I originated myself so it is not possible to
check (unless I check out some opensource project from the internet of course).

When I tested on my project both versions resulted in the same output, but then
the project was started by me so I obviously have all of the data on my PC
(provided svn saves it inside .svn of course).


-- 
Bo Berglund
Developer in Sweden


Re: Does a WC contain all log messages?

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Daniel Sahlberg wrote on Sat, 24 Apr 2021 15:18 +00:00:
> Den lör 24 apr. 2021 16:52Bo Berglund <bo...@gmail.com> skrev:
> > 2) Run the command in the working copy dir:
> > svn log -v
> > 
> > I don't know if the second incarnation will only get whatever I have done myself
> > when working on the project or if it somehow can show the complete log history.
> 
> It would connect to the repository (at the server or in the local file 
> system, if you are using file://) and fetch the log. So you will see 
> the complete log. 

Not quite.

In general, «svn $subcommand» with no positional arguments is equivalent
to «svn $subcommand ./», so logs shown will be the logs of cwd, not of
the whole repository.

Second, accessing the logs via a client is subject to authz (that makes
a difference if some of the revision numbers targeted touch paths the
user has no read permission on).

Re: Does a WC contain all log messages?

Posted by Daniel Sahlberg <da...@gmail.com>.
Den lör 24 apr. 2021 16:52Bo Berglund <bo...@gmail.com> skrev:

> If I check out and work on a project I know that the .svn dir contains
> "stuff"
> related to the subversion system.
> But is it like with GIT that it contains "everything"? I.e. all older
> revisions
> too?
>

Subversion only store things related to the working copy in the .svn dir.
It is a centralized version control system whereas Git is a distributed
version control system (see for example Wikipedia [1]).I

The reason I ask is that I was looking at svn log in order to figure out
> how to
> see what had happened earlier on the project.
>
> There are two different ways:
> 1) Connect to the server and get the log info:
> svn log -v <URL>
>

This version is useful if you have not checked out a particular URL, for
example if you want to look at a specific branch (which, in SVN, is just
another directory).

2) Run the command in the working copy dir:
> svn log -v
>
> I don't know if the second incarnation will only get whatever I have done
> myself
> when working on the project or if it somehow can show the complete log
> history.
>

It would connect to the repository (at the server or in the local file
system, if you are using file://) and fetch the log. So you will see the
complete log.

All projects I have on my system I originated myself so it is not possible
> to
> check (unless I check out some opensource project from the internet of
> course).
>
> When I tested on my project both versions resulted in the same output, but
> then
> the project was started by me so I obviously have all of the data on my PC
> (provided svn saves it inside .svn of course).


The above applies to the command line client. Other clients may implement
caching on their own. For example TortoiseSVN has a "log cache" and will
offer to use the log cache so show the log if the server is unreachable.
This is in the GUI client but if could of course be extended to a command
line as well.

Kind regards
Daniel Sahlberg

1: https://en.m.wikipedia.org/wiki/Distributed_version_control

Re: Does a WC contain all log messages?

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Bo Berglund wrote on Sat, 24 Apr 2021 15:54 +00:00:
> On Sat, 24 Apr 2021 11:05:33 -0400 (EDT), Robert Heller <he...@deepsoft.com>
> wrote:
> 
> >I believe svn log always connects to the "server".  The difference is where the 
> >"url" comes from.  In the first form, the user explicitly provides the url and 
> >in the second the url is formed from information in the .svn directories.
> 
> This I could in fact test! :)
> The svn server I use ison a local server at the office and is not exposed
> externally. I am hooked up to the office network via VPN, so I could disconnect
> and re-test.
> Sure enough, no log appeared. So it *is* a server side operation.

Correct.

> But there is no timeout on the client side, it just hangs there...
> And reconnecting to the office while it is "waiting" does nothing at all. Still
> just hangs there.

Depends on how long you waited, but the simplest explanation is that
that's down to your TCP configuration.  (SYN being dropped rather than
responded to with an RST, and then the connection revived before the
retransmission delay elapses, etc.)

> Test done on Windows 10 with svn client version 1.12.0
> Server side svn version is 1.9.7, I believe.

Re: Does a WC contain all log messages?

Posted by Bo Berglund <bo...@gmail.com>.
On Sat, 24 Apr 2021 11:05:33 -0400 (EDT), Robert Heller <he...@deepsoft.com>
wrote:

>I believe svn log always connects to the "server".  The difference is where the 
>"url" comes from.  In the first form, the user explicitly provides the url and 
>in the second the url is formed from information in the .svn directories.

This I could in fact test! :)
The svn server I use ison a local server at the office and is not exposed
externally. I am hooked up to the office network via VPN, so I could disconnect
and re-test.
Sure enough, no log appeared. So it *is* a server side operation.

But there is no timeout on the client side, it just hangs there...
And reconnecting to the office while it is "waiting" does nothing at all. Still
just hangs there.

Test done on Windows 10 with svn client version 1.12.0
Server side svn version is 1.9.7, I believe.


-- 
Bo Berglund
Developer in Sweden


Re: Does a WC contain all log messages?

Posted by Robert Heller <he...@deepsoft.com>.
At Sat, 24 Apr 2021 16:52:00 +0200 bo.berglund@gmail.com wrote:

> 
> If I check out and work on a project I know that the .svn dir contains "stuff"
> related to the subversion system.
> But is it like with GIT that it contains "everything"? I.e. all older revisions
> too?
> 
> The reason I ask is that I was looking at svn log in order to figure out how to
> see what had happened earlier on the project.
> 
> There are two different ways:
> 1) Connect to the server and get the log info:
> svn log -v <URL>
> 
> 2) Run the command in the working copy dir:
> svn log -v
> 
> I don't know if the second incarnation will only get whatever I have done myself
> when working on the project or if it somehow can show the complete log history.
> All projects I have on my system I originated myself so it is not possible to
> check (unless I check out some opensource project from the internet of course).

I believe svn log always connects to the "server".  The difference is where the 
"url" comes from.  In the first form, the user explicitly provides the url and 
in the second the url is formed from information in the .svn directories.

> 
> When I tested on my project both versions resulted in the same output, but then
> the project was started by me so I obviously have all of the data on my PC
> (provided svn saves it inside .svn of course).

Actually probably not.  See above.

svn is server-based -- everything is on the "server", even if the server is a
'file://' type server (eg "local" file-based repository). Git is not server
based. Everything is in the .git directory at the top level of the working
tree. Git does have 'push' and 'pull' commands to "sync" between the local
repostitory and a remote repostitory. The remote repostitory could be thought
of as a kind of server, but not in the svn sense.

> 
> 

-- 
Robert Heller             -- Cell: 413-658-7953 GV: 978-633-5364
Deepwoods Software        -- Custom Software Services
http://www.deepsoft.com/  -- Linux Administration Services
heller@deepsoft.com       -- Webhosting Services