Tell the user when local metadata and/or OSTs are stale relative to the org

Issue #511 resolved
Christopher Matos created an issue

It would be nice if Illuminated Cloud asked if you would like to retrieve metadata and/or generate the offline symbol table for projects that you have not opened in awhile. Then once I open the project, a prompt comes up with those options. I am constantly working on multiple different projects and if I forget to retrieve metadata I could potentially overwrite what someone else has done since I last worked on it.

Just a nice to have feature.

Comments (7)

  1. Scott Wells repo owner

    Thanks for the suggestion, Christopher. It's something I've definitely pondered quite a bit...how do you remove as much of the onus from the end user as possible for keeping the local environment fresh, but in as unintrusive (is that a word?) a way as possible? I've considered having a background thread that looks at timestamps on key metadata and either automagically updates it (in the case of the OST) or prompts the user to do so (in the case of subscribed metadata).

    Let me chew on this a bit more...there's definitely something here but I need to think about the right balance. Thanks again!

  2. Scott Wells repo owner

    I updated the title just so that it's more clear to me when reviewing the backlog. I've thought about this for quite a while...one of the most frequent questions I'm asked is, "when should I regenerate the OST?" It'd be really great if IC could tell you that the OST is stale and to what extent, then offer to regenerate it for you. The issue is that there's a non-trivial API expense to the checks required to have that information. I wouldn't want that running in the background with any frequency, so I'd need to decide if it just happens daily, on startup, or what (of course, the right answer is always "it should be configurable").

    The same thing goes for whether you need to retrieve from the org, but my guess is that for many people, that's probably more frequent and more obvious.

    I'll keep chewing on this, but I wanted to capture my thoughts so that they're available to me when I return to this in the future.

  3. Christopher Matos reporter

    Internally, my team has made changes to hooking up all of our projects to Git, so that solved most of the "hey you overwrote my stuff" issues I was having. I imagine many teams have gone this route, so maybe informing the user their metadata is out of sync won't make the most sense, because what is local may differ quite frequently from what's on the SF server. However, offering to regenerate the OST, like you said, would certainly have plenty of value.

  4. Scott Wells repo owner

    Yeah, there's no question that team collaboration should occur via VCS and not an org. Salesforce DX is based on that concept, but it's one that should be applied no matter what. I agree that the bigger benefit is knowing when and to what extent your OST is out-of-date. That's certainly what I'll tackle first for this one. Thanks for the feedback!

  5. Scott Wells repo owner

    Issue tracker grooming. Between prescribed best practices of collaboration via VCS and conflict detection features during deployment/retrieval, this should be addressed via other means.

  6. Log in to comment