Cleaning Old Content

Home Page › Forums › General Chat › Cleaning Old Content

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #2178196
    Mizz
    Participant
    Rank: Rank-1

    EDIT: BTW I'm not saying my method is the best method. Use caution if you use my method, what works for me may not work for you. I'm still curious what others do, which is the reason I started this thread.

    Has anyone found a reliable method for cleaning out older content (mainly the pesky data/runtime) without breaking anything? I manually install everything and organize my library folders after, so tracking everything can be difficult.

    The best method I've found so far is using ChatGPT Codex plugged into VSCode. I know AI is a hot topic of debate, but that's a conversation for another time.

    What I'm essentially doing is plugging my folder tree into Codex and having it read for dependencies, which despite its faults does pretty well. So far I've only ran across one or two errors that were easily fixed by either telling Codex to move them back or simply dragging the folders back into the root folder from quarentine.

    With that being said. If there's a better way please let me know. I'm sharing my method in case it helps someone. Take note of the exchange below and see whats going on.

    Full size image
    screenshot

    #2178199
    sandeep
    Participant
    Rank: Rank-2

    I hope you accounted for scenarios where the same /data or /Runtime files are referenced by multiple user facing files (such as Characters or Clothing under People). This typically happens for clothing/character products that are supported across multiple generations by the vendor. Even converted clothing products and characters are prone to this. In this scenario, user facing items across multiple genesis generations may share the same /data or /Runtime files (especially texture maps). In such cases, you need to ascertain that (re)moving /data or /Runtime files while (re)moving items from one generation does not break the references for other generation(s), if such exists.

    IMO, a safer approach might be to write a script (perhaps using AI) that:
    1) Moves user facing items to a temporary backup.
    2) Scans the entire /data or /Runtime folder to identify orphans (i.e. file paths in this folder that no longer have any entries in any user facing file). This is a more involved process since you would have to unzip all compressed .duf user facing files first and the script needs to scan all of them.
    3) Log the orphaned file paths for manual review and (re)moving.

    One significant advantage of the scripting approach is that it would provide "comprehensive" visibility (as against piecemeal visibility and actions) across modification into your entire repository. Plus, it is flexible enough to incorporate auditing and rollback measures, should you decide to automate that for future reusability.

    That said, I wouldn't trust any AI to do bulk file operation for me, especially when there is limited provision for auditable actions and rollback due to the piecemeal approach. At the end of the day, its your repository (and resources), you decide whether the juice is worth the squeeze.

    #2178200
    sandeep
    Participant
    Rank: Rank-2

    Also remember that some vendors reuse textures (eyes, mouth, nails, makeup) across multiple characters. So, it is is crucial to ensure that the files being removed from the /data folder are absolutely orphans.

    #2178201
    Mizz
    Participant
    Rank: Rank-1

    That said, I wouldn't trust any AI to do bulk file operation for me, especially when there is limited provision for auditable actions and rollback due to the piecemeal approach. At the end of the day, its your repository (and resources), you decide whether the juice is worth the squeeze.

    Oh believe me, if anyone has been burned by a "this shouldn't be a problem" AI bulk operation, its me (cries).

    As I said though, nothing is deleted. Items are kept in a quarantine folder in which Codex keeps track of via change-log. And errors are easily corrected by telling it to do so (or manually dragging/dropping). It's also the reason I have multiple quarantine folders for each session, so I'm not rolling back thousands of files at a time in case of errors. So far I have had one or two issues that were easily corrected. And I cleared up thousands of G1/G2/G3 stuff I no longer use (with the exception of shared files).

    So my main warning would be to NOT let it simply remove items because they are associated with older items. Thankfully I was aware of this and used caution.

    The scripting approach looks interesting though. And I'll have to take a look at that. Thanks for the idea.

    #2178202
    Mizz
    Participant
    Rank: Rank-1

    Also, I edited my main post with some clarification as to why I started this thread. 🙂

    #2178205
    sandeep
    Participant
    Rank: Rank-2

    It might help to clarify how you are ensuring that the files to be deleted from /data or /Runtime folder are absolutely orphans i.e. there are no user facing files left containing references to them. Also, if I understand correctly, your 'quarantine' backups are only ephemeral and it might be too late if a broken dependecy is identified later.

    #2178209
    Mizz
    Participant
    Rank: Rank-1

    Again.... Nothing is being deleted. They are out of the content library, and have no plans of deleting them any time soon. My problem isn't about storage, its about bogging everything down with useless items and improving performance. Which I have. And yes, this is an SSD if anyone is wondering.

    I feel like I made it pretty clear in my first post on how I'm aware that this isn't ideal. I'm simply looking for a better option because i KNOW this isn't the best/safest option. But it's the only one that works for me so far, which is why I'm sharing it.

    #2178210
    Antharaes
    Participant
    Rank: Rank 3

    I don't use Daz much, so don't have a huge database of items. What works for me is fairly simple. I only install what I want to use for the project I am currently working on. I create a lot myself in 3DSMax and other software and have the same approach for those as well.
    Everything in separate folders. It works like a charm.

    #2178213
    sandeep
    Participant
    Rank: Rank-2

    In Daz parlance, that would be similar to using Content Sets as discussed here. Note that the suggestion of feeding SKUs into DIM would only work for Daz store purchased items, and therefore not a universal solution. Unfortunately, the Studio provides very rudimentary support for them without providing any clear strategy for dealing with duplicate installation of content across these sets via DIM. Afaik DIM can only manage installation of a product at a single location, which makes it very limited IMO, in managing the same product across multiple content sets simultaneously.

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

 

Post You Might Like