# backintime: two known problems, one maintainer, and a permission change from 2019 still on the books

> Back In Time is a Python3 rsync frontend that ships a command line tool and a Qt GUI, and it stores backups through hard links so unchanged files cost nothing. The README spends most of its space on two unresolved defects and on how the project is staffed, which is where the useful information is.

**bit-team/backintime** — A comfortable and well-configurable graphical Frontend for incremental backups, with a command-line version also available. Modified files are transferred, while unchanged files are linked to the new folder using rsync's hard link feature, saving storage space. Restoring is straightforward via file manager, command line or Back In Time itself.

- Repository: https://github.com/bit-team/backintime
- Website: https://backintime.readthedocs.io
- Stars: 2,673 · Forks: 298
- Language: Python
- License: not declared
- Published: 2026-09-28 · Updated: 2026-09-28 · Language: en
- Canonical page: https://hysenlabs.com/projects/bit-team-backintime

## One tree ships two commands, and the default branch is dev

Two executables come out of this project: a command line tool called `backintime` and a graphical one called `backintime-qt`, both Python3 and both packaged for the major GNU/Linux distributions. The repository's default branch is dev, not master, so a clone lands you on the development line rather than on released code. The releases are separate and recent: v1.6.1 shipped on 2026-02-10, v1.6.0 two days earlier on 2026-02-08, and a v1.6.0 release candidate on 2026-01-27. The tree itself splits into common/ and qt/, alongside a VERSION file, make-tarball.sh, updateversion.sh, update_language_files.py, and a script that generates the manual page for the configuration tool. Project history is kept in three separate places, CHANGELOG.md, CHANGES, and HISTORY.md, next to AUTHORS, PLAY_WITH_BIT.md, FAQ.md, and a doc/ directory, and the tooling leaves a .travis.yml at the top level beside .github/ along with a .codespellrc.

## The storage saving comes from hard links, and the cost is a permissions rewrite

The mechanism is rsync's hard link feature. Modified files are transferred to the new snapshot directory, while unchanged files are linked to it instead of copied, which is what keeps a long series of snapshots from multiplying your disk usage. Restoring is meant to be ordinary: through a file manager, through the command line, or through Back In Time itself. The README also states that backups can be scheduled and kept locally or remotely over SSH. What it does not do is quantify the link behaviour, so the storage figure you get depends on how much of your tree changes between runs, and nothing on the page tells you how full the destination filesystem has to be before a run starts.

## The files view shows everything except the root directory

The first of two named defects: when you select a backup in the timeline widget, the main window's files view shows no files and no directories. It shows anything except /, the root directory. The offered workaround is to toggle the Show hidden files button in the files view's own toolbar, and the README hedges it by saying this might help. There is no clear solution, the real cause is still unknown, and the version that introduced it is given as a range, 1.5.* or 1.6.*. The stated plan is to rewrite that widget from scratch, with discussion and screenshots in issue 2567. Both defects are listed under the heading for the latest stable release, so the empty view is present in the version most people install.

## A permissions change from 2019 is still listed under the latest stable release

In versions up to and including 1.1.24, which the README dates to 2017 and earlier, every file in the backup target was set to -rw-r--r--. From version 1.2.0, dated 2019 onwards, rsync is executed with the --perms option, which tells it to preserve the source file's permissions. The consequence the project spells out is that backups can be larger and slower, especially the first one after you upgrade to 1.2.0 or later. The opt out is a GUI path, Expert Options, then Paste additional options to rsync, where you add --no-perms --no-group --no-owner. One detail worth keeping: even then, the exact permissions are still recorded in fileinfo.bz2 and are taken into account when files are restored.

## One maintainer has handled every core task since around 2024

The team section is short and unusually direct. Since around 2024, buhtz is named as the sole maintainer and is described as handling all core tasks, from code analysis and documentation through issue resolution and feature implementation, carried out voluntarily during spare time. Before that, the project was reactivated in 2022 through issue 1232, thanks in large part to two named contributors, continuing the work of the previous maintainer, Germar. So the sequence is dormancy, a 2022 relaunch, and then a single pair of hands. The maintenance section puts the same point more generally, saying development is done voluntarily in spare time so things need to be prioritized, and the recorded last push on the default branch is 2026-09-23.

## New features are explicitly ranked behind major issue fixes

The stated focus is fixing issues labelled High rather than implementing anything labelled Feature, and stabilizing the code base and its test suite is named as a further aim, with details deferred to a strategy outline inside CONTRIBUTING.md. The same section sends newcomers to the open issues list and singles out the ones labelled good first issue and help wanted, so the recruiting is done through the tracker rather than through a roadmap. It then asks readers to stick with the project, closing a line about everyone loving Back In Time with a heart and a grinning face. Read together, that is a project in a maintenance posture: it is asking for patience and contributions rather than promising new capability. For a backup tool that is a defensible order of work, and it also means the bug tracker, not the feature list, is the thing worth watching if you depend on it.

## Installing the development version means opening a file this README does not print

Installation is delegated twice. For released versions the page points at the many distributions that package the project, with a repology badge link, and stops there, with no apt, dnf, or pacman command anywhere in it. For contributors and for the latest development version it redirects to a Build & Install section inside CONTRIBUTING.md, and adds that the dependencies are described there too. The same pattern applies to documentation: the end user manual on readthedocs is labelled not totally up-to-date, and the source code documentation for developers is labelled disabled, with a request to open an issue if you need it, and a status line that itself carries a typo where up-to-date was meant. A third file carries the troubleshooting, FAQ.md, which holds a problems, errors and solutions section that the two named defects point into. Support runs through four channels: the bit-dev@python.org mailing list, a Mastodon account at fosstodon.org, the issues section, and a postal address.

## Licensing is declared in a file header and a directory, not in the repository field

No license is filled in at the repository level, yet the README opens with an SPDX header that names GPL-2.0-or-later, credits the Back In Time Team with a 2009 copyright year, and points readers at a LICENSES directory and at the SPDX license list online. The tree matches that header: it carries a LICENSES.md file, a LICENSES directory, and a REUSE.toml, which is the file format used to record licensing per file. So the intent is documented in the repository and traceable per file, while the summary field on the repository itself stays empty. Anyone checking the license before redistributing or vendoring the code should read LICENSES.md and the README header rather than the repository summary.

## Conclusion

Use the packaged versions from your distribution rather than tracking the dev branch, and read the two known problems before you trust a restore: an empty files view in the Qt window and permission handling that can make your first backup after an upgrade much larger than the rest. One volunteer maintainer has handled every core task since around 2024, working in spare time, with new features explicitly ranked behind major issue fixes, so treat the roadmap as fixed and the bug backlog as the thing to watch. Before installing, confirm your distribution still carries a current version, since the end user documentation is marked as not fully up to date and the developer documentation is disabled.

## FAQ

### How do you install backintime on a Linux system?

The README does not give a package manager command. It says Back In Time is included in many GNU/Linux distributions and tells you to use their repositories, with a repology badge link for the list. For the latest development version on the dev branch it redirects you to the Build & Install section of CONTRIBUTING.md, which is also where the dependencies are described.

### What is Back In Time used for?

It is a Python3 graphical and command line frontend for incremental backups built on rsync. Modified files are transferred while unchanged files are hard-linked into the new snapshot directory, and backups can be scheduled locally or stored remotely over SSH, then restored through a file manager, the command line, or the tool itself.

### Does backintime preserve file permissions in backups?

Since version 1.2.0, dated 2019 onwards, rsync runs with the --perms option so source permissions are preserved, where versions up to 1.1.24 set everything to -rw-r--r--. That change is why the first backup after an upgrade can be larger and slower, and you can opt out through Expert Options by adding --no-perms --no-group --no-owner.

### Why does the backintime files view come up empty after I pick a backup?

That is the first known problem named in the README: with a backup selected in the timeline, the files view shows no files or directories, and shows anything except the root directory. The suggested workaround is toggling Show hidden files in that view's toolbar, the cause is still unknown, and the plan is to rewrite the widget from scratch.

### How does backintime compare with Timeshift or Borg Backup?

The repository makes no comparison with either. What it states is narrower: two commands ship, `backintime` and `backintime-qt`, both Python3, both packaged by many distributions, with snapshots stored through rsync hard links and restorable through a file manager, the command line, or the tool itself. Point-by-point differences are not in the README.

## Sources

- [bit-team/backintime on GitHub](https://github.com/bit-team/backintime)
- [Issues](https://github.com/bit-team/backintime/issues)
- [Project website](https://backintime.readthedocs.io)
- [README](https://github.com/bit-team/backintime/blob/dev/README.md)
- [Releases](https://github.com/bit-team/backintime/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bit-team-backintime
