====== Development tools ====== There are lots of [[.editor:ide|IDE]]s and [[.editor:|editors]] for writing code. You can either use a predefined environment or [[:dev:make|make]] your own. Some useful tools and commands are listed on this page. ===== diffing ===== Shows differences in code files, e.g. while merging with [[git|git]]. * [[http://meldmerge.org/|meld]] – GUI Merge. Compares code in a two- or three-pane editor to visually review changes. * ''[[.ide:vscode|code]] %%--%%diff'' – vscode visual diff . * ''cdiff'' * ''sdiff -o'' ===== Version Control Systems ===== [[vcs|VCS]] are software to version your code. It's basically a supercharged undo function for your whole project. Accidental changes are mitigated and you can always see who did what and when. ==== git ==== Source code versioning and collaboration with [[git]] is only possible because Our Gitty Lord And Savior Linus Torvalds™ made it so. * [[https://github.com/tj/git-extras|git-extras]] – tools which make working with git easier * [[https://rtyley.github.io/bfg-repo-cleaner/|BFG Repo-Cleaner]] – Removes large or troublesome blobs and files you don't want in your git history. * [[https://gitea.com/gitea/tea|tea]] – command line client for Gitea. * [[https://github.com/profclems/glab|GLab]] – open-source GitLab command line client. * [[https://github.com/cli/cli|gh]] – official GitHub tool for working on the command line. * git-cola * tig – Terminal git pager/browser. * [[https://magit.vc/|Magit]] – text-based user interface to Git. Fills the gap between the Git command-line interface and GUIs, letting you perform version control tasks with mnemonic key presses. ==== mobile apps ==== * [[https://f-droid.org/de/packages/com.manichord.mgit/|MGit]] – Git client and text editor * [[https://f-droid.org/de/packages/org.mian.gitnex/|GitNex]] for Gitea * [[https://f-droid.org/de/packages/com.commit451.gitlab/|Labcoat]] for GitLab ==== gitk ==== Ugly TK GUI for browsing Git repositories. Show the history for a subfolder: ''%%gitk -- path/to/folder%%'' (has to be run in repo folder)