If a file lies in a directory backed by a Subversion repo ending with either trunk or branches/X how do I make the trunk or X show up in the mode-line as SVN-trunk or SVN-X similar to what is shown in Git-backed files typically as Git-master.
Subversion Branch in Mode-Line
238 Views Asked by Nordlöw At
2
There are 2 best solutions below
2
Stefan
On
You could define a function:
(defun vc-svn-mode-line-string (file)
(format "SVN-%s" (vc-svn-current-branch-name file)))
Of course, you'd also have to define vc-svn-current-branch-name because that one doesn't exist yet. I guess it would have to do something like
(defun vc-svn-current-branch-name (file)
(with-temp-buffer
(setq default-directory (file-name-directory file))
(vc-svn-command t t file "info")
...extract the branch name from the info in current buffer..
))
Related Questions in GIT
- Push mysql database script to server using git
- Git show's file path
- Git > diffs filtered, show only certain changed classes/files
- Pushing to git repository hosted by Visual studio online without entering user name and password
- How do I create my own Git branch to work on?
- Git init --bare giving error fatal: Out of memory? mmap failed: No such device
- Sub-directory into independent repository and later merge back into main repository
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- eclipse errors when try to change to master git branch
- How to have Heroku build my development branch on a staging server?
- Is "Merged in" a commit message created by bitbucket, or git?
- Git: Multiple projects under one directory
- Permission denied hg-git
- Is it possible to clone a private git repo without adding ssh keys
- Track file in master repository which is ignored in submodule
Related Questions in SVN
- Why does the Jenkins SVN plugin give error E170001 when connecting to my VisualSVN server?
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- In SVN, what's the different between "merge from a to b" an "merge from b to a"?
- Revert back to older version in TortoiseSVN and Commit
- SVN - folder checkout and merges
- Automatically Compile .Net UserControls
- SVN update not working
- maven-scm-plugin 1.9.4 - too old to work with working copy
- git-svn problems creating tags
- Sonarqube SVN Plugin fails with code E155007 'is not a working copy'
- Install Subversion 1.7 on Debian jessie
- How to customize svn date format
- Reverse Merge and svn:mergeinfo
- Automatically deploy latest revision to website from SVN server
- What is a generic name for SVN's "trunk", "tags" and "branches" directories?
Related Questions in EMACS
- EMACS-Live + Slime error at startup
- Auto complete of braces in emacs
- tmux + emacs : ctrl is not reconized
- yasnippet weird-input when org-mode :tag: on same line
- Error in Dired sorting on Windows (with Cygwin Emacs)
- ESS produces "Variable binding depth exceeds max-specpdl-size"
- How to simplify the mode-line, and enter evil-insert-state depending on buffer name
- MELPA pointing to non-existent version of multi-term?
- Mark-up for bold and italic in emacs org-mode
- How to get C-` key combo recognized in Emacs under Mac?
- how to install Emacs Prelude system-wide on windows/MinGW?
- Emacs on Windows 8: write-error, bad file descriptor
- Emacs and Skim not in Sync fails to open
- Emacs web mode selection word delimiters include _
- Error loading D:\cygdrive\d\path\to\my\file.pdf
Related Questions in VERSION-CONTROL
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- How to delete a repository and add a new one in Android studio?
- Import Git SVN cloned repository into existing Git repository
- HowTo: change a project's status from `Invalid` to `Valid`?
- git - put files back under version control
- TFS version control does not show conflicts
- Git: how to commit and cherry-pick bug fix?
- git-svn problems creating tags
- Switching Git branches inside an Android Repo project
- Reverse Merge and svn:mergeinfo
- Push remote specific branches with different names
- Automatically deploy latest revision to website from SVN server
- Version Control for analytic projects
- How to tell git that my local directory is a specific directory in the remote tree
- How to properly determine a Git repository's URL
Related Questions in MODELINE
- #vim: set only sort of working
- Vim: disable autocmd BufRead (modeline)
- Add button with dynamic menu to emacs's modeline?
- Find from elisp if Emacs buffer is modified
- Notify out-of-date buffers in the mode-line
- Which vim options should be used in modelines?
- Is it possible to add keyword in a vim modeline
- how to load a .vim file on a mode line
- Vim bash syntax highlighting with modeline
- How do I display the total number of lines in the Emacs modeline
- Emacs - Mode Line Update
- How to prevent vim from interpreting a Makefile target as a modeline?
- Emacs Mode Line Click Change Buffer
- Mode line will not redraw properly
- Subversion Branch in Mode-Line
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Determining SVN status
I am not aware of any built-in way to do this, but you can write your own code for this purpose.
Based on
vc-svn-repository-nameandvc-backendyou can write a function that returns a custom mode text for SVN, and falls back to the default for all other VC systems:If the current file is under SVN, we check its repo URL according to your convention and compile a corresponding mode text. Don't be confused by the name of
vc-svn-repository-hostname, the function actually returns the complete repo URL of the given file.For all other backends, or if the URL does not match any pattern, we fall back to the default VC status text as in
vc-mode.Adding to the mode line
You can then use this function in the mode line, by adding a corresponding mode line construct to
mode-line-format:Since
mode-line-formatis buffer-local, we usesetq-defaultto change its global value. Our new mode line construct checks whethervc-modeis active, that is, whether the file is under version control, and evaluates our function in this case, to obtain our custom status text. See Mode Line Data for more information about mode line constructs.The ellipsis stand for the other content of the mode line, which you may also customize to your liking. I'd suggest, though, that you simply copy the default value of
mode-line-format, and replace(vc-mode vc-mode)with our new construct. That will simply replace the old VC information with our custom status text, and leaves everything else as before.