git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Feature Request: Capability to save and load the workspace

From
Yakup Akbay <yakbay@ubicom.com>
Date
Jul 31, 2009, 08:45 UTC
Message-ID
<4A72AF1C.1020500@ubicom.com>

I'm not sure whether such a feature exists or not. But let me explain my concern.

Say, we have different profiles for different products. When I work on a profile (edit, configure, build etc.) I can't switch to another profile before I distclean the existing one. So, when I have to work on 2 projects at the same time, I have to have 2 copies of the same source tree. This might be OK for 2, but if the repository is around 3 gigs this is not quite suitable for more than 2 profiles.

IT WOULD BE NICE to have a feature in git that allows us to save the current workspace then work on a different profile on a clean environment. Then save that profile and switch back to the previous profile at any time without losing the environment.

Currently, I'm doing this myself using some scripts like:
work on foo

$ ./project-save foo work on bar $ ./project-save bar $ ./project-load foo keep working on foo etc.

where, project-save looks like:
1. BRANCH=<current branch>
2. echo $BRANCH > .BRANCH
3. git checkout -q -b foo
4. git add -f .
5. git commit -q -m 'Save foo'
6. git checkout -q $BRANCH

This simply forks a new branch 'foo' then adds/commits all untracked + gitignore'd files to 'foo'. In addition, it stores the current branch name in a temporary file (.BRANCH). (All binary files and even temporary file are committed.)

and, project-load looks like:
1. git checkout -q -f foo -- .BRANCH
2. BRANCH=`cat .BRANCH`
3. git checkout -q -f $BRANCH
4. git checkout -q -f foo -- .
5. git reset -q
6. rm -f .BRANCH

This gets the target branch name from the file .BRANCH in 'foo', switches to that branch and checks out all files from 'foo'. At the end it removes .BRANCH file.

If I want to completely remove the project foo, then I simply remove the branch 'foo'. ---

The problem is that this works way too slow  :-(  (this has some other
problems as well). I believe, such a feature could be implemented more
efficiently in the core, but I'm so familiar with core git.
 
What do you think?
Yakup
 
Next: Erik Faye-Lund
Message 1 of 6 in “Feature Request: Capability to save and load the workspace”
  1. Yakup AkbayJul 31, 2009
  2. Erik Faye-LundJul 31, 2009
  3. Yakup AkbayJul 31, 2009
  4. Johannes SchindelinJul 31, 2009
  5. Matthieu MoyJul 31, 2009
  6. Jakub NarebskiJul 31, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.