Commit graph

122 commits

Author SHA1 Message Date
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
dd6e57b1e5 refactor: Simplify ‘p4-lowlevel-command-into-buffer’ 2023-04-03 22:53:02 -07:00
2fb2806708 Remove section numbers from the README output 2023-02-04 18:43:39 -08:00
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
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
a54a081042 Add a build manifest for generating the README for sourcehut 2023-02-04 18:27:55 -08:00
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
f48d5b449c Show P4 file type in vc-dir 2022-03-13 21:25:57 -07:00
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
4ecf8cd2bc Fix ‘rename-file’ method name 2022-03-02 16:39:11 -08:00
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
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
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
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
e84aff5944
Repository information can be viewed in ‘vc-dir’ 2021-09-08 00:14:27 -07:00
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
0f054faa4d Use the right client for ‘vc-dir’ 2021-03-10 18:10:16 -08:00
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
a4c79a8ea3 Fix some warnings 2021-02-27 15:12:12 -08:00
dcb212c410 Fix as many as possible checkdoc issues 2021-02-27 14:09:44 -08:00
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
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
45a6cf8173 Update CHANGELOG 2021-01-28 16:19:39 -08:00
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
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
79262464fd Update changelog 2021-01-23 11:21:34 -08:00
b4999a2cac Add README 2021-01-23 11:12:17 -08:00
7af739cc7d Add client argument to ‘vc-p4-delete’ 2021-01-23 10:34:05 -08:00
a9bf4c10ad Add client arg to ‘vc-p4-update-changelog’ 2021-01-23 10:30:34 -08:00
7726d77a94 Add client argument to ‘vc-p4-print-log’ 2021-01-23 10:25:34 -08:00
ed30884133 Add client argument to ‘vc-p4-steal-lock’ 2021-01-23 10:19:13 -08:00
a24331f2cc Fix ‘p4-lowlevel-sync’ call 2021-01-23 10:04:00 -08:00
8c75982f01 Add client argument for merging files 2021-01-23 10:01:21 -08:00
5c39509421 Add client argument for checking in files 2021-01-23 09:50:29 -08:00
553914a5ac Fix using client for registering new files 2021-01-23 09:39:24 -08:00
b95132e71e Add client arguments for ‘p4 add’ 2021-01-23 09:34:20 -08:00
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
a535c47e93 Make ‘vc-revert’ work with the current client 2021-01-22 21:58:40 -08:00
a60278efa7 Make checking out files with a client work 2021-01-22 21:35:20 -08:00
2b270a93f0 Add client argument to ‘p4-lowlevel-revert’ 2021-01-21 23:13:18 -08:00
6724d2b827 Specify client for initial responsibility check 2021-01-21 19:15:08 -08:00
4c5fc58d6d Enable lexical binding for project files 2021-01-14 23:12:30 -08:00
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
174054e58f Add CHANGELOG 2020-05-27 22:24:55 -07:00
079ab80831 Bump version 2020-05-27 22:13:18 -07:00
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
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
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
d181ea1e1f Rename deploy -> pages
It needs to be named pages to deploy to gitlab pages.
2020-05-13 22:08:21 -07:00
1281ec775f Make sure the deploy directory exists 2020-05-13 22:03:22 -07:00