unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#12001: 24.1.50; vc-diff always talks to CVS repository
@ 2012-07-20 18:45 Richard Stallman
  2012-07-20 19:10 ` Andreas Schwab
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-07-20 18:45 UTC (permalink / raw)
  To: 12001

It used to be the case that I could edit a CVS-managed file and type 
C-x v =, and it would generally not talk to the repository.
It would compare my workfile with what it had checked out,
exactly what was useful.

In the trunk built on July 2, C-x v = always tries to talk with the
repository.  This makes it useless when I have no network connection.

It was more useful the old way.


In GNU Emacs 24.1.50.1 (mips64el-unknown-linux-gnu, GTK+ Version 2.12.12)
 of 2012-07-02 on chiefs-gnewsense
Bzr revision: 108717 rgm@gnu.org-20120624101734-r4tegeqa6td69p8f
Configured using:
 `configure 'CFLAGS=-g -O0' '--with-gif=no' '--with-tiff=no''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Diff

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  gpm-mouse-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
C-s C-s C-v C-v C-s C-s C-a C-u C-v C-u C-v C-u C-v 
C-v C-s C-s C-a C-u C-n C-u C-n C-n ESC f ESC f ESC 
f DEL DEL e s e ESC f s , SPC a n d SPC o t j e r s 
SPC DEL DEL DEL DEL DEL h e r s SPC l i k e SPC t y 
j e m DEL DEL DEL DEL h e m C-f RET C-d C-e C-d SPC 
C-a C-u C-v C-u C-v C-u C-v C-v C-v C-v C-v C-x C-s 
C-x v = C-z C-x 0 C-x v = C-x 1 C-v ESC x r e p o r 
t C-g C-x b RET C-x v v C l a r i f y SPC ESC DEL E 
x p l a i n SPC w h y SPC I SPC c o n t r i b u t e 
d SPC t o SPC O p p e n SPC S o u r c e s . ESC b ESC 
b C-f C-d C-e RET C l a r i f y SPC X SPC a n d SPC 
T e X SPC a r e SPC C-a ESC d S a y C-e n o t SPC t 
h e SPC o n l y SPC n o n - G N U SPC p r o g r a m 
s SPC i n SPC t e h SPC G N U SPC s y s t e m . ESC 
b ESC n ESC b C-b C-b C-t C-n C-c C-c C-x v = C-x 0 
C-l C-x v = ESC x r e p o r t SPC e m a c s SPC b u 
g RET

Recent messages:
Source file `/home/rms/emacs-bzr/trunk/lisp/vc/log-edit.el' newer than byte-compiled file
Source file `/home/rms/emacs-bzr/trunk/lisp/vc/pcvs-util.el' newer than byte-compiled file
Mark set
Press C-c C-c when you are done editing.
Enter a change comment.  Type C-c C-c when done
Empty comment ring
Checking in /home/rms/www/gnu/thegnuproject.html...done
Finding changes in /home/rms/www/gnu/thegnuproject.html...
No changes between working revision and workfile
Finding changes in /home/rms/www/gnu/thegnuproject.html...done

Load-path shadows:
None found.

Features:
(shadow emacsbug log-edit pcvs-util add-log diff-mode easy-mmode vc
ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
ediff-init ediff vc-dispatcher parse-time vc-cvs pcmpl-unix compare-w
etags novice sgml-mode rmailkwd sh-script smie executable rect
mule-util rmailsum kmacro ispell epa-mail epa derived epg epg-config
ind-util multi-isearch shell pcomplete grep compile comint ansi-color
ring dired-aux dabbrev quail help-mode view rmailout mailalias qp
rmailmm message sendmail format-spec rfc822 mml easymenu mml-sec
mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader
mail-parse rfc2231 dired t-mouse time-date rmailedit rmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils paren cus-start
cus-load tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet
lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook
help simple abbrev minibuffer loaddefs button faces cus-face files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-07-20 18:45 bug#12001: 24.1.50; vc-diff always talks to CVS repository Richard Stallman
@ 2012-07-20 19:10 ` Andreas Schwab
  2012-07-21  2:43   ` Richard Stallman
  0 siblings, 1 reply; 21+ messages in thread
From: Andreas Schwab @ 2012-07-20 19:10 UTC (permalink / raw)
  To: rms; +Cc: 12001

Richard Stallman <rms@gnu.org> writes:

> In the trunk built on July 2, C-x v = always tries to talk with the
> repository.  This makes it useless when I have no network connection.

I cannot reproduce that.  When the vc backup file for the current
revision exists, vc-diff uses it as the base.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-07-20 19:10 ` Andreas Schwab
@ 2012-07-21  2:43   ` Richard Stallman
  2012-07-21  8:01     ` Andreas Schwab
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-07-21  2:43 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: 12001

    I cannot reproduce that.  When the vc backup file for the current
    revision exists, vc-diff uses it as the base.

What is the "vc backup file"?  How can I tell whether it exists?

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-07-21  2:43   ` Richard Stallman
@ 2012-07-21  8:01     ` Andreas Schwab
  2012-08-19 22:29       ` Richard Stallman
  0 siblings, 1 reply; 21+ messages in thread
From: Andreas Schwab @ 2012-07-21  8:01 UTC (permalink / raw)
  To: rms; +Cc: 12001

Richard Stallman <rms@gnu.org> writes:

>     I cannot reproduce that.  When the vc backup file for the current
>     revision exists, vc-diff uses it as the base.
>
> What is the "vc backup file"?  How can I tell whether it exists?

See vc-version-backup-file-name.  They are created the first time the
modified file is saved.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-07-21  8:01     ` Andreas Schwab
@ 2012-08-19 22:29       ` Richard Stallman
  2012-08-20  7:25         ` Andreas Schwab
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-08-19 22:29 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: 12001

    >     I cannot reproduce that.  When the vc backup file for the current
    >     revision exists, vc-diff uses it as the base.

    > What is the "vc backup file"?  How can I tell whether it exists?

    See vc-version-backup-file-name.  They are created the first time the
    modified file is saved.

This is not happening for me when I edit the Emacs sources.
The reason seems to be that 

           (vc-call-backend backend 'make-version-backups-p file)

does nothing, because it calls vc-default-make-version-backups-p
which always returns nil.

This is because (get 'Bzr 'vc-functions)
returns the following:

((make-version-backups-p vc-default-make-version-backups-p . Bzr) (checkout-model . vc-bzr-checkout-model) (registered . vc-bzr-registered) (find-file-hook . vc-bzr-find-file-hook) (working-revision . vc-bzr-working-revision) (state-heuristic . vc-bzr-state-heuristic) (mode-line-string vc-default-mode-line-string . Bzr))

Indeed, vc-bzr-make-version-backups-p is not defined.
Should it be?

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-19 22:29       ` Richard Stallman
@ 2012-08-20  7:25         ` Andreas Schwab
  2012-08-21  2:20           ` Richard Stallman
  0 siblings, 1 reply; 21+ messages in thread
From: Andreas Schwab @ 2012-08-20  7:25 UTC (permalink / raw)
  To: rms; +Cc: 12001

Richard Stallman <rms@gnu.org> writes:

> This is not happening for me when I edit the Emacs sources.
> The reason seems to be that 
>
>            (vc-call-backend backend 'make-version-backups-p file)
>
> does nothing, because it calls vc-default-make-version-backups-p
> which always returns nil.

make-version-backups-p only returns non-nil for VCS that don't have the
original version locally.

> Indeed, vc-bzr-make-version-backups-p is not defined.
> Should it be?

No VCS other than CVS should need it.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-20  7:25         ` Andreas Schwab
@ 2012-08-21  2:20           ` Richard Stallman
  2012-08-21  2:52             ` Eli Zaretskii
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-08-21  2:20 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: 12001

    make-version-backups-p only returns non-nil for VCS that don't have the
    original version locally.

    > Indeed, vc-bzr-make-version-backups-p is not defined.
    > Should it be?

    No VCS other than CVS should need it.

I am using bzr, and apparently bzr needs this,
because vc-diff DOES NOT find the unmodified version
except by connecting to the server.

So either there is some other bug,
or vc-bzr-make-version-backups-p ought to be defined.

Or did I misunderstand something?

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-21  2:20           ` Richard Stallman
@ 2012-08-21  2:52             ` Eli Zaretskii
  2012-08-21  3:53               ` Glenn Morris
  0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2012-08-21  2:52 UTC (permalink / raw)
  To: rms; +Cc: schwab, 12001

> Date: Mon, 20 Aug 2012 22:20:26 -0400
> From: Richard Stallman <rms@gnu.org>
> Cc: 12001@debbugs.gnu.org
> 
>     make-version-backups-p only returns non-nil for VCS that don't have the
>     original version locally.
> 
>     > Indeed, vc-bzr-make-version-backups-p is not defined.
>     > Should it be?
> 
>     No VCS other than CVS should need it.
> 
> I am using bzr, and apparently bzr needs this,
> because vc-diff DOES NOT find the unmodified version
> except by connecting to the server.
> 
> So either there is some other bug,
> or vc-bzr-make-version-backups-p ought to be defined.

Since bzr has all the history of the versions locally, in the shape of
branch meta-data, you can easily recover any previous version of any
file without resorting to backup files.  For example, this puts the
last version of xdisp.c on a separate file:

   bzr cat -r -1 src/xdisp.c > src/xdisp.c.previous

Or, you want to overwrite the modified file with its last unmodified
version:

   bzr revert src/xdisp.c

(You can also use revision numbers older than -1, the last one, and
use the -r argument to "bzr revert", to recover versions older than
the last one.)

For this reason, no backup files are created in a bzr repository,
since doing so just wastes disk space.

CVS is different, because it does not store history locally, it must
go to the server for the equivalents of the above operations, which
requires you and the server to be on-line.  So with CVS, storing local
backups does have its merit.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-21  2:52             ` Eli Zaretskii
@ 2012-08-21  3:53               ` Glenn Morris
  2012-08-21 21:22                 ` Richard Stallman
  0 siblings, 1 reply; 21+ messages in thread
From: Glenn Morris @ 2012-08-21  3:53 UTC (permalink / raw)
  To: rms; +Cc: 12001


Firstly;

Is this bug report about CVS, as the initial report and subject
indicate; or is it about bzr, as every subsequent message seems to
indicate? If so, bzr + vc-diff + no network works just fine for me.

Eli Zaretskii wrote:

> Since bzr has all the history of the versions locally

Secondly; 

Maybe rms has somehow ended up with a lightweight checkout, or a stacked
branch, or some other non-standard form of bzr repository that does not
actually keep all the data locally.

What does `bzr info' report in the local copy?

While Emacs could in principle try to handle these forms of bzr checkout
better, it seems kind of pointless, since the solution is simply to use
a "normal" bzr branch.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-21  3:53               ` Glenn Morris
@ 2012-08-21 21:22                 ` Richard Stallman
  2012-08-22  2:56                   ` Eli Zaretskii
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-08-21 21:22 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 12001

In fact, the problem is happening with bzr using the Emacs sources.

I don't know why I wrote CVS in the subject -- habit took over, I
suppose.  I have a vague memory of seeing it a few weeks ago with CVS
in editing gnu.org web pages, but this bug report is with bzr.

    Maybe rms has somehow ended up with a lightweight checkout, or a stacked
    branch, or some other non-standard form of bzr repository that does not
    actually keep all the data locally.

    What does `bzr info' report in the local copy?

Repository checkout (format: 2a)
Location:
  repository checkout root: .
        checkout of branch: bzr+ssh://rms@bzr.savannah.gnu.org/emacs/trunk/
         shared repository: /home/rms/emacs-bzr

I set up my repository as recommended in BzrQuickStartForEmacsDevs.  I
chose this because it is the simplest, both to set up and to use in
practice, and also the most similar to CVS.

vc-diff should support it correctly.

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-21 21:22                 ` Richard Stallman
@ 2012-08-22  2:56                   ` Eli Zaretskii
  2012-08-22  3:13                     ` Glenn Morris
  0 siblings, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2012-08-22  2:56 UTC (permalink / raw)
  To: rms; +Cc: 12001

> Date: Tue, 21 Aug 2012 17:22:48 -0400
> From: Richard Stallman <rms@gnu.org>
> Cc: 12001@debbugs.gnu.org
> 
>     What does `bzr info' report in the local copy?
> 
> Repository checkout (format: 2a)
> Location:
>   repository checkout root: .
>         checkout of branch: bzr+ssh://rms@bzr.savannah.gnu.org/emacs/trunk/
>          shared repository: /home/rms/emacs-bzr

That's indeed a checkout that lacks local history.

> I set up my repository as recommended in BzrQuickStartForEmacsDevs.  I
> chose this because it is the simplest, both to set up and to use in
> practice, and also the most similar to CVS.

A bound branch behaves the same, but is better because you have the
history locally and bzr can do many operations without communicating
with the server.

> vc-diff should support it correctly.

Agreed.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-22  2:56                   ` Eli Zaretskii
@ 2012-08-22  3:13                     ` Glenn Morris
  2012-08-22 16:26                       ` Eli Zaretskii
  2012-08-23  2:49                       ` Richard Stallman
  0 siblings, 2 replies; 21+ messages in thread
From: Glenn Morris @ 2012-08-22  3:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, 12001

Eli Zaretskii wrote:

>> Repository checkout (format: 2a)
>> Location:
>>   repository checkout root: .
>>         checkout of branch: bzr+ssh://rms@bzr.savannah.gnu.org/emacs/trunk/
>>          shared repository: /home/rms/emacs-bzr
>
> That's indeed a checkout that lacks local history.

?
No it isn't. That seems fine to me. It's the same as I use.

With the current trunk in such a repo, and no net connection, I did:

  ./src/emacs -Q --eval '(setq vc-command-messages t)' README &

Then made some changes to README, saved, and typed C-x v =.
*Messages* tells me that this runs:

  bzr diff --diff-options -c README

It works fine and shows me the diff, with no net connection.

rms, what happens if you try that?
What command does Emacs say it runs?
What happens if you type that same command at the shell outside of Emacs?

If it doesn't work outside of Emacs, this is not an Emacs issue.

(I don't even know how you make such a command contact the repository.
There's nothing for Emacs to "support" here, it's just how bzr works.)





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-22  3:13                     ` Glenn Morris
@ 2012-08-22 16:26                       ` Eli Zaretskii
  2012-08-22 16:33                         ` Glenn Morris
  2012-08-23  2:49                       ` Richard Stallman
  1 sibling, 1 reply; 21+ messages in thread
From: Eli Zaretskii @ 2012-08-22 16:26 UTC (permalink / raw)
  To: Glenn Morris; +Cc: rms, 12001

> From: Glenn Morris <rgm@gnu.org>
> Cc: rms@gnu.org,  12001@debbugs.gnu.org
> Date: Tue, 21 Aug 2012 23:13:06 -0400
> 
> Eli Zaretskii wrote:
> 
> >> Repository checkout (format: 2a)
> >> Location:
> >>   repository checkout root: .
> >>         checkout of branch: bzr+ssh://rms@bzr.savannah.gnu.org/emacs/trunk/
> >>          shared repository: /home/rms/emacs-bzr
> >
> > That's indeed a checkout that lacks local history.
> 
> ?
> No it isn't. That seems fine to me. It's the same as I use.

?

Don't you have few more lines of output, viz.:

  Related branches:
    parent branch: bzr+ssh://eliz@bzr.savannah.gnu.org/emacs/trunk/

Also, Richard cited BzrQuickStartForEmacsDevs, which says:

  Now we get the source files plus all the history of the branch we work
  on (trunk on this case, which is the CVS mainline):

      cd emacs/
      bzr checkout URL_TO_UPSTREAM_TRUNK trunk
      ^^^^^^^^^^^^

AFAIK, "bzr checkout" creates a checkout, not a bound branch.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-22 16:26                       ` Eli Zaretskii
@ 2012-08-22 16:33                         ` Glenn Morris
  0 siblings, 0 replies; 21+ messages in thread
From: Glenn Morris @ 2012-08-22 16:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, 12001

Eli Zaretskii wrote:

> Don't you have few more lines of output, viz.:
>
>   Related branches:
>     parent branch: bzr+ssh://eliz@bzr.savannah.gnu.org/emacs/trunk/

Yes, but those are optional (aren't they?).

>       bzr checkout URL_TO_UPSTREAM_TRUNK trunk
>       ^^^^^^^^^^^^
>
> AFAIK, "bzr checkout" creates a checkout, not a bound branch.

IIUC:
checkout == bound branch == heavyweight checkout
checkout != lightweight checkout.

I did check before starting this that a lightweight checkout says
"light checkout" in bzr info.

bzr help checkouts:
   [...]
   However the checkout is still a first class branch in Bazaar terms,
   so that you have the full history locally.
   [...]
   It is also possible to create a "lightweight" checkout by passing the
   --lightweight flag to checkout.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-22  3:13                     ` Glenn Morris
  2012-08-22 16:26                       ` Eli Zaretskii
@ 2012-08-23  2:49                       ` Richard Stallman
  2012-08-23  7:09                         ` Glenn Morris
  1 sibling, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-08-23  2:49 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 12001

I think I have caused some confusion.

The reason for CVS in the subject line is that I saw
the problem originally with a file managed by CVS.

Then a week or so ago I decided to investigate why
a VC version backup file was not made.  Since I was editing
a file in the Emacs sources, I investigated using that file.
However, that file is managed with bzr, not CVS.
I did not realize that this made a difference,
because the message about VC version backup files
didn't say they were only needed for CVS.
This made my investigation irrelevant.

I didn't try vc-diff with that file, I just assumed vc-diff
needed the VC backup file, as I was told.  It seems vc-diff
does in fact work with this file.

I will need to investigate some other time using a CVS file,
when I have a connection that permits updating from Savannah.

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-23  2:49                       ` Richard Stallman
@ 2012-08-23  7:09                         ` Glenn Morris
  2012-08-23  7:14                           ` Glenn Morris
  2012-08-23  8:18                           ` Paul Eggert
  0 siblings, 2 replies; 21+ messages in thread
From: Glenn Morris @ 2012-08-23  7:09 UTC (permalink / raw)
  To: rms; +Cc: Paul Eggert, 12001

Richard Stallman wrote:

> The reason for CVS in the subject line is that I saw
> the problem originally with a file managed by CVS.

Okaaaaay...

Now I think I can reproduce this. Analyis:

vc-cvs-state-heuristic returns 'edited when it should return 'up-to-date.
Thus vc-before-save never makes a version backup, and diffs always
contact the server.

vc-cvs-state-heuristic returns 'edited because (vc-file-getprop file
'vc-checkout-time) returns 0, which never matches the file modification
time.

The vc-checkout-time property is set by vc-cvs-parse-entry.
This fails to set the correct vc-checkout-time because, at vc-cvs.el:1175

time = "Thu Aug 23 06:50:59 2012"
mtime = (20533 53971 188243 896000)
parsed-time = (59 50 6 23 8 2012 4 nil 0)
(apply 'encode-time parsed-time) = (20533 53971) != mtime

So looks to me like this is a "high resolution time stamp" issue,
so I'm punting to Paul.





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-23  7:09                         ` Glenn Morris
@ 2012-08-23  7:14                           ` Glenn Morris
  2012-08-23  7:16                             ` Glenn Morris
  2012-08-23  8:18                           ` Paul Eggert
  1 sibling, 1 reply; 21+ messages in thread
From: Glenn Morris @ 2012-08-23  7:14 UTC (permalink / raw)
  To: rms; +Cc: Paul Eggert, 12001

Glenn Morris wrote:

> time = "Thu Aug 23 06:50:59 2012"
> mtime = (20533 53971 188243 896000)
> parsed-time = (59 50 6 23 8 2012 4 nil 0)
> (apply 'encode-time parsed-time) = (20533 53971) != mtime

In other words, this is

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7905

sigh





^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-23  7:14                           ` Glenn Morris
@ 2012-08-23  7:16                             ` Glenn Morris
  0 siblings, 0 replies; 21+ messages in thread
From: Glenn Morris @ 2012-08-23  7:16 UTC (permalink / raw)
  To: rms; +Cc: Paul Eggert, 12001

Glenn Morris wrote:

> In other words, this is
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7905

Well, actually it's not the same.






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-23  7:09                         ` Glenn Morris
  2012-08-23  7:14                           ` Glenn Morris
@ 2012-08-23  8:18                           ` Paul Eggert
  2012-08-24  2:17                             ` Richard Stallman
  1 sibling, 1 reply; 21+ messages in thread
From: Paul Eggert @ 2012-08-23  8:18 UTC (permalink / raw)
  To: rms; +Cc: 12001

Does the following patch fix the problem for you?
It is designed to fix the symptoms that Glenn reported.

=== modified file 'lisp/vc/vc-cvs.el'
--- lisp/vc/vc-cvs.el	2012-07-11 23:13:41 +0000
+++ lisp/vc/vc-cvs.el	2012-08-23 08:14:11 +0000
@@ -1178,7 +1178,11 @@
                                (parse-time-string (concat time " +0000")))))
       (cond ((and (not (string-match "\\+" time))
                   (car parsed-time)
-                  (equal mtime (apply 'encode-time parsed-time)))
+                  ;; Compare just the seconds part of the file time,
+                  ;; since CVS file time stamp resolution is just 1 second.
+                  (let ((ptime (apply 'encode-time parsed-time)))
+                    (and (eq (car mtime) (car ptime))
+                         (eq (cadr mtime) (cadr ptime)))))
              (vc-file-setprop file 'vc-checkout-time mtime)
              (if set-state (vc-file-setprop file 'vc-state 'up-to-date)))
             (t






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-23  8:18                           ` Paul Eggert
@ 2012-08-24  2:17                             ` Richard Stallman
  2012-08-24  4:06                               ` Paul Eggert
  0 siblings, 1 reply; 21+ messages in thread
From: Richard Stallman @ 2012-08-24  2:17 UTC (permalink / raw)
  To: Paul Eggert; +Cc: 12001

It seems to have fixed the bug.  Thanks.

--
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call






^ permalink raw reply	[flat|nested] 21+ messages in thread

* bug#12001: 24.1.50; vc-diff always talks to CVS repository
  2012-08-24  2:17                             ` Richard Stallman
@ 2012-08-24  4:06                               ` Paul Eggert
  0 siblings, 0 replies; 21+ messages in thread
From: Paul Eggert @ 2012-08-24  4:06 UTC (permalink / raw)
  To: rms; +Cc: 12001-done

On 08/23/2012 07:17 PM, Richard Stallman wrote:
> It seems to have fixed the bug.

Thanks for checking.  I committed the fix as
bzr trunk version 109761 and am marking this as done.





^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2012-08-24  4:06 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-20 18:45 bug#12001: 24.1.50; vc-diff always talks to CVS repository Richard Stallman
2012-07-20 19:10 ` Andreas Schwab
2012-07-21  2:43   ` Richard Stallman
2012-07-21  8:01     ` Andreas Schwab
2012-08-19 22:29       ` Richard Stallman
2012-08-20  7:25         ` Andreas Schwab
2012-08-21  2:20           ` Richard Stallman
2012-08-21  2:52             ` Eli Zaretskii
2012-08-21  3:53               ` Glenn Morris
2012-08-21 21:22                 ` Richard Stallman
2012-08-22  2:56                   ` Eli Zaretskii
2012-08-22  3:13                     ` Glenn Morris
2012-08-22 16:26                       ` Eli Zaretskii
2012-08-22 16:33                         ` Glenn Morris
2012-08-23  2:49                       ` Richard Stallman
2012-08-23  7:09                         ` Glenn Morris
2012-08-23  7:14                           ` Glenn Morris
2012-08-23  7:16                             ` Glenn Morris
2012-08-23  8:18                           ` Paul Eggert
2012-08-24  2:17                             ` Richard Stallman
2012-08-24  4:06                               ` Paul Eggert

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).