Skip to content

A simple python File Explorer with Tkinter, Command line, Kivy and PySimpleGUI interfaces

License

Notifications You must be signed in to change notification settings

CAU-OSS-project-practice/OSS-file-manager

 
 

Repository files navigation

Python-file-explorer(with git) develop by OSS-TEAM-13

Index

Project Description

This project is a git file browser project that has been expanded by adding Git-related functions to file browsing.

Provides file browsing function by default and provides the following functions.

  • git init
  • git add
  • git commit
  • git rm && git rm --cached
  • git restore && git restore --staged
  • git mv
  • git clone from github

In branch menu we provides with GUI

  • git branch actions(create, delete, rename, checkout, merge)
  • Commit history about current branch

In addition to these features, it displays the file status (4 types) according to Git status as an image!

Also It displays git commit history(in branch menu) and more specific information when click commit objects.

More specific information, You can check information in Function design and description tab.

Installation Guide

Needs for running

Python 3.8+
pip (package installer for Python)
platform : mac OS
  • Installation
git clone https://github.com/CAU-OSS-project-practice/OSS-file-manager.git
cd OSS-file-manager
pip install -r requirements.txt
python3 files_new.py
  • Operate in virtual environment in case of tkinter library error or python version conflict
python -m venv .venv # .venv crete
source .venv/bin/activate # Run virtual environment
  • Disable virtual environment
deactivate

Function design and description(v1.0)

All photos can be viewed as enlarged images when clicked.😀


File browser function



File search starts at the root directory



All files and directories contained in the current directory are represented by icons, names, and extensions.



Browsing via double click


Git init Feature

git_init_not_git_repo

If the directory is not a Git repository -> Activate the init button

git_init_git_repo

For directories that are already Git repositories -> disable init button


Show file status according to Git status



Show staged files


Show unstaged (modified) files



Show committed (unmodified) files



Show staged-unstaged (modified) files

Stage is divided into 4 types.
  1. Staged
  2. unstaged (modified)
  3. committed (unmodified)
  4. staged - unstaged (when a file is changed in the staged state)

Untracked - Staged files ex) When executing the git rm --cached command, untracked is made to work as a priority.


Git add Feature

git_add_before

before file selection

git_add_one

When one file is selected, only that file can be added.

git_add_all

If no files are selected, git add . movement


Git commit Feature

git_commit_show_staged_list

shows the list of staged changes

git_commit_message

writing commit message via GUI


Git restore Feature



Before Git restore works (shows modified files)



After git restore works (return to pre-commit state)


Git restore --staged Feature



Git restore --staged before operation (staging files)



git restore --staged Return staged files to modified state


Git rm Feature



git rm before



git rm after(Deleted and deleted facts from directory are staged)


Git rm --cached Feature



git rm --cached before



git rm --cached after -> Not deleted from real directory, but deleted (untracked) from git repository


Git mv Feature

git_mv_open_mv_window

Write file name to change

git_mv_rename

file name change

Function design and description(v2.0)

All photos can be viewed as enlarged images when clicked.😀

New Feature has updated.

  1. We updated basic Git branch associated action(Create, Delete, Rename, Checkout).
  2. We updated Git merge action
  3. And We can also check Git commit history
  4. Git clone from Github

Feature 1 , 2 and 3 can be activated through the Branch Menu button.
Feature No. 3 was implemented by adding a button to the place where v1.0's git-related actions were gathered.

Feature 1. Branch Associated Action

Branch Create Feature

it asks the user to enter a branch name and then creates a branch with the name



Ask the user to enter a branch name



Branch has Created in Branch List


Git Delete Feature

it shows the list of branches, asks the user to select one of them, and deletes the selected one



Shows the list of branches in Branch list GUI



Ask the user to select one of them



branch has deleted


Git Rename Feature

it shows the list of branches, asks the user to select one of them and to enter a new name, and renames the branch.



Shows the list of branches in Branch list GUI



Ask the user selected branch to enter a new name



branch has renamed


Git Checkout Feature

it shows the list of branches, asks the user to select one of them, and checkout the branch.



Shows the list of branches in Branch list GUI



asks the user to select one of them



checkout the branch.(You can also just double click the branch list's specific branch to checkout)


Error message windows

If it is not possible to perform the requested action, then report an error message to the user.
We have two cases
1. When attempting to delete a current checked out branch
2. When attempting to rename a selected branch to already exists branch name

3. When attempting to create a branch that same name with already exists branch
First Case(Try to delete current checked out branch)



Current branch list(example)



When attempting to delete a currently checked out branch



Error message about First case



Second Case(Try to rename selected branch to already exist branch)



Current branch list(example)



When attempting to selected branch to already exist branch



Error message about Second case



Third Case(Try to create branch that has name same with already existing branch)



Current branch list(example)



When attempting to create branch that has same with already existing branch



Error message about Third case

Feature 2. Git merge Action


We updated the Feature Git merge Action.
We provides a branch list that will be merged to current branch
And after that, by clicking merge button, user can do merge action
There are two option
1. Fast-forward merge
2. 3-way-merge


And we show Error message when some error created.


Fast-forward merge



provides a branch list that will be merged to current branch



select branch that will be merged and click merge



Success message


3-way merge



provides a branch list that will be merged to current branch



select branch that will be merged and click merge



Success message


Git Merge error messages

In 3-way merge, merge conflict can be generated.
We provides the user with an error message. and merge abort button to abort merge.



Test environment. conflict exists in hi.txt



select branch that will be merged and click merge -> Conflict occured!!!!



We provide abort button to abort merge



Before/After click abort button

Feature 3. Git Commit history with Graph



Git commit history with Graph

1. You can check the workflow of the current branch.
2. When you click commit object in graph, You can check detailed information of commit object.



Workflow of current list(example)



Can check commit object by click, and more complicated commit graph can be created

Feature 3. Git Clone from Github


Git Clone from public repository

public_repository

Input public repository address

after_public_clone

After click the clone button, clone the public repository


Git Clone from private repository

private_input

Input private repository address

private_repository

If it is private repository, you must input your ID and access token

after_private_clone

After click the clone button, clone the private repository and save your ID and access token

Team Information

사진 성명 담당 깃허브 이메일
최우형 git flow
status management according to git status
.git subdirectory control
test case creation
Git commit history Graph
박규한 git init
git add
git commit
git mv
Git clone
Git branch action(create,delete,rename,checkout)
조명근 git rm
git rm --cached
git restore
git restore --staged
button activation implementation according to git status of selected file
Git merge
Documentation
test(v2.0)

About Collaboration

Tools used for the collaborative development

Copyleft / End User License

This program is licensed under the Python Software Foundation License (PSF License). third party softwares that may be contained in this program is referd in license.txt below.

About

A simple python File Explorer with Tkinter, Command line, Kivy and PySimpleGUI interfaces

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%