Giter VIP home page Giter VIP logo

Comments (10)

lucasderraugh avatar lucasderraugh commented on June 30, 2024 1

The snapshots mechanism is effectively how the undo/redo stack works in GitUp. We write up to a limit of I believe 100 past operations. So I wouldn't be surprised if over time you eventually get a slowdown when we are persisting up to 100 snapshots.

I know you said that you've only had this repo on your computer for a month, but is it a large repo that was cloned from elsewhere?

As for things that we could try to remedy the situation is have a configurable max number of snapshots to persist. Then you can still have the undo/redo benefits but with a smaller history. Any other solution would involve writing individual snapshots out rather than a single binary blob (most likely alternative), or having the write occur on a background thread (more difficult), but both of these options have a number of implications.

I'd be interested to see if in a week or so you experience the same problem.

from gitup.

lucasderraugh avatar lucasderraugh commented on June 30, 2024

This is unfortunately a long-standing issue #415. Frankly it's not one that I've actually investigated yet.

Does your performance improve if you delete that path (.git/co.gitup.mac/snapshots.data)?

from gitup.

Gray-Wind avatar Gray-Wind commented on June 30, 2024

Surprisingly it does, which is very interesting as the repo I use is rather new on my computer (about 1 month only).

from gitup.

Gray-Wind avatar Gray-Wind commented on June 30, 2024

Thank you for the explanation, yes, the repo is rather big, it was cloned directly from the server, but it has a lot of branches and tags.

I will get back in a week or so.

from gitup.

Gray-Wind avatar Gray-Wind commented on June 30, 2024

As we agreed, I am returning back with results. Delays on actions were gradually increasing during the week, so far the size of snapshots is about 500GB.

from gitup.

Gray-Wind avatar Gray-Wind commented on June 30, 2024

I've looked into the data and most of the plist contains references to tags:

image

from gitup.

lucasderraugh avatar lucasderraugh commented on June 30, 2024

500GB or MB? I certainly hope MB 😅. I think as an easy stopgap we could add a customization on the limit for snapshots, effectively limiting your undo stack. Otherwise I think it's a rework of the snapshot mechanism that frankly I don't have the time to maintain.

I think customizing the limit would allow you to use most of GitUp with easy. Out of curiosity if you browse snapshots (command-S) about how many would you say you have?

from gitup.

Gray-Wind avatar Gray-Wind commented on June 30, 2024

500MB, my bad (:

I have about 60 snapshots now, it is not much.

I have a question tho, why snapshot data contains information about all the tags? Most of them years old.

from gitup.

lucasderraugh avatar lucasderraugh commented on June 30, 2024

Ya, the problem is that the snapshots are exactly that, they are entire snapshots of the repo at a given time. So if you want to go back to the state of the repo yesterday, you can do that, but of course that means we need a way to get you there. Now of course a different approach that would be more efficient space wise is to have a diff of the repo, but I'm not sure of a practical way that can be done with what has been written so far.

If it is indeed tags that are really taking up the space for you, potentially git clone <repositoryUrl> --no-tags or deleting local tags git tag -d $(git tag -l) would improve the performance (though I assume you use tags yourself). You can also fetch a limited set of tags, but you have to then be careful as git fetch will pull down all tags at any given time. We could potentially have "limited snapshots" where we don't snapshot everything and allow the snapshots to be essentially sub-snapshots of the repo.

from gitup.

richardtop avatar richardtop commented on June 30, 2024

I'm not using the Snapshots feature at all, is it possible to make a product version without the snapshots, but that's super snappy?

from gitup.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.