xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit 2d706360d813f9ae89e723194527ed507b6b4244

Document name conflict resolution behavior
Add new *vifm-name-conflicts* help section and remove outdated TODO entry
Author: Kirill Rekhov
Author date (UTC): 2025-12-25 21:42
Committer name: xaizek
Committer date (UTC): 2026-01-13 15:29
Parent(s): aa7ac76a72f9058b78749ddcfa010c82869663cb
Signing key: 99DC5E4DB05F6BE2
Tree: d30bd755237e65708c3b5bf0e5066eb5be7f262f
File Lines added Lines deleted
TODO 0 1
data/vim/doc/app/vifm-app.txt 49 1
src/tags.c 1 0
File TODO changed (mode: 100644) (index 1a7699acd..7aa0b127c)
... ... Basic things:
17 17 Documentation: Documentation:
18 18 * State the need of *nix tools on Windows more explicitly. * State the need of *nix tools on Windows more explicitly.
19 19 * Divide docs into several files (as it's quite big now). * Divide docs into several files (as it's quite big now).
20 * Document name conflict resolution options.
21 20 * Add separate section on bookmarks. * Add separate section on bookmarks.
22 21
23 22 Vi(m) specific features: Vi(m) specific features:
File data/vim/doc/app/vifm-app.txt changed (mode: 100644) (index 151b5b75a..c2bd8f548)
1 *vifm-app.txt* For Vifm version 0.15 Last change: 2025 December 21
1 *vifm-app.txt* For Vifm version 0.15 Last change: 2026 January 13
2 2
3 3 Email for bugs and suggestions: <xaizek@posteo.net> Email for bugs and suggestions: <xaizek@posteo.net>
4 4
 
34 34 |vifm-column-view| Column view configuration details. |vifm-column-view| Column view configuration details.
35 35 |vifm-color-schemes| Details on using color schemes in vifm. |vifm-color-schemes| Details on using color schemes in vifm.
36 36 |vifm-trash| Details about trash directory in vifm. |vifm-trash| Details about trash directory in vifm.
37 |vifm-name-conflicts| Resolving file name conflicts during operations.
37 38 |vifm-file-copying| Additional information of file copying. |vifm-file-copying| Additional information of file copying.
38 39 |vifm-clientserver| Client-server communication. |vifm-clientserver| Client-server communication.
39 40 |vifm-ext-rename| About editing buffer of file names in an editor. |vifm-ext-rename| About editing buffer of file names in an editor.
 
... ... directory was modified not by operation that are meant for it. But this
6599 6600 won't lead to any issues with operations, since they ignore nonexistent won't lead to any issues with operations, since they ignore nonexistent
6600 6601 files. files.
6601 6602
6603 --------------------------------------------------------------------------------
6604 *vifm-name-conflicts*
6605
6606 When copying, moving, or creating symbolic links, Vifm can encounter a name
6607 conflict: a file with the same name already exists in the target directory.
6608 In such cases Vifm shows a dialog asking how to resolve the conflict.
6609
6610 Available actions:
6611
6612 - overwrite
6613 Replace the existing file with the incoming one.
6614
6615 - overwrite all
6616 Apply the overwrite action to all further conflicts during the same
6617 operation without asking again.
6618
6619 - skip
6620 Do not copy or move the file that caused the conflict.
6621
6622 - skip all
6623 Skip all further conflicting files without prompting.
6624
6625 - rename
6626 Enter a new name for the incoming file.
6627 Pressing Enter without typing a new name keeps the old name and causes
6628 the dialog to appear again.
6629
6630 - merge
6631 For directories: copy only missing files from the source directory into
6632 the existing one.
6633
6634 - merge all
6635 Apply the merge action to all further directory conflicts.
6636
6637 - append
6638 If the destination file is shorter, append the missing tail bytes from the
6639 source file. Example: if source is 1000 bytes and destination is 300 bytes,
6640 the last 700 bytes of the source are appended. This is intended for
6641 resuming interrupted copy operations.
6642
6643 Notes:
6644
6645 - The conflict dialog appears for :copy, :move, and for link creation
6646 commands (like al or ar).
6647 - File extensions are not modified automatically when renaming.
6648 - Conflict resolution choices apply only to the current operation.
6649
6602 6650 -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
6603 6651 *vifm-file-copying* *vifm-file-copying*
6604 6652
File src/tags.c changed (mode: 100644) (index ec009dbf8..91a847c4f)
... ... const char *tags[] = {
902 902 "vifm-mouse-overview", "vifm-mouse-overview",
903 903 "vifm-mouse-using", "vifm-mouse-using",
904 904 "vifm-n", "vifm-n",
905 "vifm-name-conflicts",
905 906 "vifm-normal", "vifm-normal",
906 907 "vifm-options", "vifm-options",
907 908 "vifm-p", "vifm-p",
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master