Commit Graph

123 Commits (master)

Author SHA1 Message Date
Tom Willemse 0637cddd58 fix: vc-p4 doesn't recognize a file in its client because of case
When checking to see if a file is within a Perforce client, match the root
directory and current directory as reported by Perforce and ignore case
differences.

Sometimes (at least on Windows) the current directory and the client root can
point at the same directory, but because of the way Perforce creates directories
and files the case might differ.
2023-04-03 22:57:23 -07:00
Tom Willemse 43c4b8fa56 fix: ‘vc-ediff’ thinks everything in all files has changed
Calling ‘p4-lowlevel-command-or-error’ on a buffer will output the raw response
from Perforce, which includes tags like ‘text:’ and ‘exit:’ at the start of each
line. These tags are used by the low-level functions to find the right data and
figure out if the given command succeeded or not.

Using ‘p4-lowlevel-command-into-buffer’ should have the desired behaviour of
cutting out all the tags and showing only the actual contents of the response.
This will make sure that the “other” buffer doesn't display all lines have
changed because suddenly each line starts with a tag.
2023-04-03 22:53:23 -07:00
Tom Willemse dd6e57b1e5 refactor: Simplify ‘p4-lowlevel-command-into-buffer’ 2023-04-03 22:53:02 -07:00
Tom Willemse 2fb2806708 Remove section numbers from the README output 2023-02-04 18:43:39 -08:00
Tom Willemse 9855eb32ec Use subshell instead of argument redirection
I'm getting an access denied error, hopefully this will fix that.
2023-02-04 18:38:13 -08:00
Tom Willemse 016d9a4d12 Add --fail-with-body to curl command
When the command gets an error response it still returns 0 if there is output.
With this flag it'll still return a non-zero status code even when it outputs
text, assuming that the server responds with something of 400 or higher.
2023-02-04 18:36:09 -08:00
Tom Willemse a54a081042 Add a build manifest for generating the README for sourcehut 2023-02-04 18:27:55 -08:00
Tom Willemse 2beff7d468 Fix issue with files showing as needs-update in vc-dir
Files that have move/delete as their head action would show up as needing
updates in vc-dir.
2022-03-14 23:47:29 -07:00
Tom Willemse f48d5b449c Show P4 file type in vc-dir 2022-03-13 21:25:57 -07:00
Tom Willemse 99ca65c5cb Change the visited file name of the renamed file's buffer
If ‘p4-vc-rename-file’ is used and the file that's been renamed is open in a
buffer, change that buffer's visited file name so that when you switch to it and
start editing it, it doesn't save to the original file and your modifications
will have to be moved over.
2022-03-02 20:23:04 -08:00
Tom Willemse 4ecf8cd2bc Fix ‘rename-file’ method name 2022-03-02 16:39:11 -08:00
Tom Willemse 3d066413de Replace ‘goto-line’ with ‘forward-line’
According to the documentation of ‘goto-line’, it's usually not what you want
for a lisp program. It's not entirely clear why, but I suspect it has something
to do with either hooks run, or some effect it'll have on state.

This commit replaces it with the suggested

    (goto-char (point-min))
    (forward-line (-1 N))

Where N is the argument previously given to ‘goto-line’.
2022-01-23 20:58:25 -08:00
Tom Willemse bab0d7083d
Set the current directory in ‘vc-p4-dir-extra-headers’
It seems like it might be possible that this function gets called in the wrong
directory, so just to be sure set the current directory to the one passed in.
This _should_ make sure that ‘p4’ is called in the right directory.
2021-09-16 23:02:04 -07:00
Tom Willemse 2180dc8535
Replace ‘vc-workfile-version’ with ‘vc-working-revision’
As far as I can tell there is no ‘vc-workfile-version’ function anywhere. There
is a property with that name set on files by vc-p4, but it seems that the
function we’re looking for is actually ‘vc-working-revision’.
2021-09-08 00:22:54 -07:00
Tom Willemse b5c4732eb4
Reformat README
I use the ‘org-indent-mode’ now to view org-mode files, which means that
formatting looks even better without having to maintain much along the lines of
indentation.
2021-09-08 00:15:50 -07:00
Tom Willemse e84aff5944
Repository information can be viewed in ‘vc-dir’ 2021-09-08 00:14:27 -07:00
Tom Willemse 905e88a1bd
Remove ‘vc-p4-client’
When I wrote this feature I didn’t realize that this functionality is already
built into Perforce itself. By using the ‘P4CONFIG’ variable you can specify the
name of a file that ‘p4’ will look for that can specify the client (among
others) for that directory and all subdirectories.
2021-09-08 00:12:03 -07:00
Tom Willemse 0f054faa4d Use the right client for ‘vc-dir’ 2021-03-10 18:10:16 -08:00
Tom Willemse 461b1357f9 Rename ‘vc-p4-find-version’ to ‘vc-p4-find-revision’
It seems that nothing uses ‘vc-p4-find-version’, or ‘vc-find-version’, and it’s
not mentioned as a function to implement in vc.el. There is a ‘find-revision’
mentioned with the same signature though.
2021-02-27 15:25:22 -08:00
Tom Willemse a4c79a8ea3 Fix some warnings 2021-02-27 15:12:12 -08:00
Tom Willemse dcb212c410 Fix as many as possible checkdoc issues 2021-02-27 14:09:44 -08:00
Tom Willemse 48237437e8 Add ‘vc-p4-rename’
In Perforce renaming and deleting and creating files are different things. In
the latter situation any history is lost.
2021-02-24 22:17:00 -08:00
Tom Willemse f3423ce275 Add ‘vc-p4-dir-extra-headers’
This function shows extra information in the header of VC dir buffers.
2021-01-28 18:54:27 -08:00
Tom Willemse 45a6cf8173 Update CHANGELOG 2021-01-28 16:19:39 -08:00
Tom Willemse ccccdbe03e Fix the status where a file has changes
VC Expects the backend to report that the status is ‘needs-update’, not
‘needs-patch’. I don’t know if this has changed over the years, but this is what
it needs now.
2021-01-28 16:18:02 -08:00
Tom Willemse 39efc77e07 Fix ‘vc-p4-checkin’
- The arguments ‘comment’ and ‘rev’ have been switched. I don’t know if this
  used to be different from how it is now, but ‘rev’ comes last now and is
  optional.

- The ‘vc-p4-client’ needs to be collected from the first file in the list of
  files to check in because ‘vc-p4-checkin’ is called from a different buffer
  that isn’t in the same directory.

- ‘vc-p4-client’ also needs to be stored under a different name so that when it
  changes to the ‘*p4-lowlevel-changes*’ buffer it doesn’t clear the value.

- Instead of inserting the specified comment directly, send it through
  ‘log-edit-extract-headers’ which removes the "Summary: " header that
  ‘vc-log-edit’ adds.

- Indent rigidly to ‘tab-width’ instead of 8. Indenting to 8 added too many tabs
  to the description and caused all lines to be prefixed by a tab.
2021-01-25 17:06:41 -08:00
Tom Willemse 79262464fd Update changelog 2021-01-23 11:21:34 -08:00
Tom Willemse b4999a2cac Add README 2021-01-23 11:12:17 -08:00
Tom Willemse 7af739cc7d Add client argument to ‘vc-p4-delete’ 2021-01-23 10:34:05 -08:00
Tom Willemse a9bf4c10ad Add client arg to ‘vc-p4-update-changelog’ 2021-01-23 10:30:34 -08:00
Tom Willemse 7726d77a94 Add client argument to ‘vc-p4-print-log’ 2021-01-23 10:25:34 -08:00
Tom Willemse ed30884133 Add client argument to ‘vc-p4-steal-lock’ 2021-01-23 10:19:13 -08:00
Tom Willemse a24331f2cc Fix ‘p4-lowlevel-sync’ call 2021-01-23 10:04:00 -08:00
Tom Willemse 8c75982f01 Add client argument for merging files 2021-01-23 10:01:21 -08:00
Tom Willemse 5c39509421 Add client argument for checking in files 2021-01-23 09:50:29 -08:00
Tom Willemse 553914a5ac Fix using client for registering new files 2021-01-23 09:39:24 -08:00
Tom Willemse b95132e71e Add client arguments for ‘p4 add’ 2021-01-23 09:34:20 -08:00
Tom Willemse 5bc33dcc44 Fix usage of ‘alist-get’
By default ‘alist-get’ uses ‘eq’ to compare keys, which doesn’t work for strings
reliably (I’m actually surprised it works at all).
2021-01-23 09:30:46 -08:00
Tom Willemse a535c47e93 Make ‘vc-revert’ work with the current client 2021-01-22 21:58:40 -08:00
Tom Willemse a60278efa7 Make checking out files with a client work 2021-01-22 21:35:20 -08:00
Tom Willemse 2b270a93f0 Add client argument to ‘p4-lowlevel-revert’ 2021-01-21 23:13:18 -08:00
Tom Willemse 6724d2b827 Specify client for initial responsibility check 2021-01-21 19:15:08 -08:00
Tom Willemse 4c5fc58d6d Enable lexical binding for project files 2021-01-14 23:12:30 -08:00
Tom Willemse 23bacc0d4b Add login commands
- Add command ‘vc-p4-logged-in-p’ to check if the user is currently logged in.

- Add command ‘vc-p4-login’ to log in if the user isn’t already logged in.

- Add better error reporting for the situation where a user isn’t logged in.
2021-01-14 22:39:21 -08:00
Tom Willemse 174054e58f Add CHANGELOG 2020-05-27 22:24:55 -07:00
Tom Willemse 079ab80831 Bump version 2020-05-27 22:13:18 -07:00
Tom Willemse 62e038846b Require at least Emacs 25
I’ve started using ‘alist-get’, which wasn’t added until Emacs 25.
2020-05-27 22:12:28 -07:00
Tom Willemse a1141460b8 Update ‘vc-p4-dir-status’ to ‘vc-p4-dir-status-files’
Newer versions of VC have changed the way ‘vc-dir’ calls each back-end.
2020-05-27 18:18:41 -07:00
Tom Willemse d32dd5f376 Simplify and fix ‘vc-p4-is-in-client’
Quoting the string with Windows paths in it would double-quote the directory
separators. It also seems easier to use ‘string-prefix-p’ than an anchored
regular expression.

‘alist-get’ is a function that was introduced in Emacs 25 that is easier to use
than ‘assoc’ + ‘cdr’.
2020-05-27 17:57:45 -07:00
Tom Willemse d181ea1e1f Rename deploy -> pages
It needs to be named pages to deploy to gitlab pages.
2020-05-13 22:08:21 -07:00