On Mon, Nov 6, 2023 at 1:34 PM Bo Berglund <bo.bergl...@gmail.com> wrote: > > I am hunting for when a particular change was made in a file under version > control. It happened years ago. > > The versioning system was migrated from CVSNT to Subversion back in 2017 and > the > old CVS repository was imported into SVN with all branches and tags etc > available. > > The change I am looking for should have happened back in 2004 when the > property > behind what I am hunting for was changed but I cannot find any message about > this in my archives... > > So now I am looking for *when* a particular section of a source file was > changed > so I would like to list all revisions when this file had a commit to it at > all. > > Then I will extract the revisions in a binary fashion to find when exactly the > change that should have been done in 2004 was actually done. > > Can this be done somehow using the command line interface to svn? > If so what would be the correct command to issue? > > > I need to get a list of the revisions where the file was changed. > > I tried reading the redbean documentation on line but I am not sure I > understand > the way the export works for different revisions of the same file. > > The way I understand svn the revision when you export/checkout a file at a > specific rev number is the file as it existed at the time that revision was > committed. So even if the file did not change during that revision there will > be > an exported file if I use the -r argument, right? > > So I need to start by some command to give me the revision numbers when the > specific file *actually changed*. So I can focus on the commits when this file > changed instead of getting lots of the same file because the revisions were > done > because something else changed.. > > Can that be done? > > -- > Bo Berglund > Developer in Sweden >
Some things that might be helpful: (1) The '--quiet' (or '-q') switch to 'svn log', together with the <path> as mentioned by Robert, e.g.,: $ svn log --quiet <path> Using the INSTALL file in a working copy of Subversion's sources as an example: $ svn log --quiet INSTALL ------------------------------------------------------------------------ r1911278 | hartmannathan | 2023-07-25 23:25:21 -0400 (Tue, 25 Jul 2023) ------------------------------------------------------------------------ r1905955 | kotkov | 2022-12-13 04:49:29 -0500 (Tue, 13 Dec 2022) ------------------------------------------------------------------------ r1903577 | hartmannathan | 2022-08-19 12:31:35 -0400 (Fri, 19 Aug 2022) ------------------------------------------------------------------------ r1899399 | hartmannathan | 2022-03-30 17:26:30 -0400 (Wed, 30 Mar 2022) ------------------------------------------------------------------------ r1894501 | dsahlberg | 2021-10-23 03:20:35 -0400 (Sat, 23 Oct 2021) ------------------------------------------------------------------------ r1894491 | dsahlberg | 2021-10-22 14:43:24 -0400 (Fri, 22 Oct 2021) ------------------------------------------------------------------------ r1881958 | julianfoad | 2020-09-23 11:04:31 -0400 (Wed, 23 Sep 2020) ------------------------------------------------------------------------ r1877960 | futatuki | 2020-05-20 14:58:15 -0400 (Wed, 20 May 2020) ------------------------------------------------------------------------ (snip some 600 lines) ------------------------------------------------------------------------ r840117 | kevin | 2001-09-05 09:59:27 -0400 (Wed, 05 Sep 2001) ------------------------------------------------------------------------ r840082 | kfogel | 2001-08-31 02:15:13 -0400 (Fri, 31 Aug 2001) ------------------------------------------------------------------------ r840068 | kfogel | 2001-08-30 23:22:56 -0400 (Thu, 30 Aug 2001) ------------------------------------------------------------------------ r839979 | kfogel | 2001-08-16 17:03:09 -0400 (Thu, 16 Aug 2001) ------------------------------------------------------------------------ r839944 | kfogel | 2001-08-14 20:28:37 -0400 (Tue, 14 Aug 2001) ------------------------------------------------------------------------ r839943 | kfogel | 2001-08-14 20:23:24 -0400 (Tue, 14 Aug 2001) ------------------------------------------------------------------------ r839929 | kfogel | 2001-08-13 20:54:08 -0400 (Mon, 13 Aug 2001) ------------------------------------------------------------------------ r839536 | kfogel | 2001-06-15 13:00:25 -0400 (Fri, 15 Jun 2001) ------------------------------------------------------------------------ r836593 | kfogel | 2000-06-06 13:47:11 -0400 (Tue, 06 Jun 2000) ------------------------------------------------------------------------ (2) The '--revision' (or '-r') switch with a {DATE} (or {DATE}:{DATE} range) instead of a revision number. For example, with the same INSTALL file, if I want to see the changes made in 2014: $ svn log --quiet --revision {2014-01-01}:{2014-12-31} INSTALL ------------------------------------------------------------------------ r1572339 | breser | 2014-02-26 18:21:34 -0500 (Wed, 26 Feb 2014) ------------------------------------------------------------------------ There was only one revision to the file made in 2014. If we remove '--quiet' we can see the log message: $ svn log --revision {2014-01-01}:{2014-12-31} INSTALL ------------------------------------------------------------------------ r1572339 | breser | 2014-02-26 18:21:34 -0500 (Wed, 26 Feb 2014) | 6 lines Bump required version of Apache httpd to 2.2.x or newer. * INSTALL: Change from 2.x to 2.2.x or newer. * configure.ac: Require 2.2.x's module magic number. ------------------------------------------------------------------------ If we wanted to see the changes, 'svn log' can take a '--diff' switch: $ svn log --diff --revision {2014-01-01}:{2014-12-31} INSTALL ------------------------------------------------------------------------ r1572339 | breser | 2014-02-26 18:21:34 -0500 (Wed, 26 Feb 2014) | 6 lines Bump required version of Apache httpd to 2.2.x or newer. * INSTALL: Change from 2.x to 2.2.x or newer. * configure.ac: Require 2.2.x's module magic number. Index: INSTALL =================================================================== --- INSTALL (revision 1572338) +++ INSTALL (revision 1572339) @@ -436,7 +436,7 @@ http://freshmeat.net/projects/cyrussasl/ - 9. Apache Web Server 2.X (OPTIONAL) + 9. Apache Web Server 2.2.X or newer (OPTIONAL) (http://httpd.apache.org/download.cgi) ------------------------------------------------------------------------ Hope this helps, Nathan